Реверс-инжиниринг программного обеспечения методом смарт-перебора: прототип и эксперимент
https://doi.org/10.31854/1813-324X-2025-11-6-88-100
EDN: TQFFYA
Аннотация
Актуальность. Одним из подходов к поиску уязвимостей в программах является их преобразования из выполняемого машинного кода в человеко-ориентированный исходный, более пригодный для работы эксперта по информационной безопасности. Ранее авторами был получен соответствующий метод «умного» перебора вариантов исходного кода на предмет установления экземпляра, компилируемого в заданный машинный. Логичным продолжением исследования должна стать реализация программного прототипа для проверки работоспособности метода и экспериментального получения ряда характеристик.
Цель исследования: реализовать программный прототип смарт-перебора вариантов исходного кода (согласно разработанному методу), экспериментально оценить его работоспособность и границы применимости.
Методы: программная инженерия, эксперимент, аппроксимация значений.
Результаты: создан программный прототип подбора экземпляра исходного кода по заданному машинному, реализующий соответствующий метод, полученный в предыдущих авторских исследованиях. Осуществлено применение прототипа для получения исходного кода математического выражения по его машинному коду с использованием части формального синтаксиса языка программирования (заданного в форме графа синтаксических правил). Проведена серия экспериментов для оценки характеристик прототипа путем определения следующих зависимостей: количество всех вариантов исходного кода от синтаксической разнородности синтаксиса и максимальной глубины обхода его графового представления, время поиска определенного исходного кода от данной глубины обхода. Тестирование прототипа показало его базовую работоспособность и гипотетический потенциал, что обосновывает и саму возможность осуществления реверс-инжиниринга противоположным к классическому способом – от исходного кода, а не машинного.
Практическая значимость: текущая версия прототипа может непосредственно применяться для осуществления декомпиляции небольших частей машинного кода, при этом, без «привязки» к конкретному языку программирования и процессорной архитектуре (поскольку требуется лишь средство компиляции).
Обсуждение: существенным усовершенствованием «умного» перебора может стать его качественная оптимизация путем применения искусственного интеллекта в части генетических алгоритмов.
Ключевые слова
Об авторах
К. Е. ИзраиловРоссия
кандидат технических наук, доцент, профессор кафедры прикладной математики и безопасности информационных технологий Санкт-Петербургского университета государственной противопожарной службы МЧС России
М. В. Буйневич
Россия
доктор технических наук, профессор, профессор кафедры КБ-4 МИРЭА – Российского технологического университета
Список литературы
1. Комаров В.В., Мезинова Н.А., Евдокимова Е.А. Анализ условий реализации угроз безопасности информации через эксплуатацию уязвимостей информационных активов // Научно-аналитический журнал «Вестник Санкт-Петербургского университета Государственной противопожарной службы МЧС России». 2024. № 2. С. 126–135. DOI:10.61260/2218-130X-2024-2-126-135. EDN:NRXXGV
2. Ле Ч.Д., Фам М.Х., Динь Ч.З., До Х.Ф. Применение алгоритмов машинного обучения для обнаружения вредоносных программ в операционной системе Windows с помощью PE-заголовка // Информационно-управляющие системы. 2022. № 4(119). C. 44–57. DOI:10.31799/1684-8853-2022-4-44-57. EDN:YFIBQJ
3. Израилов К.Е., Буйневич М.В. Реверс-инжиниринг программного обеспечения методом смарт-перебора: пошаговая схема // Труды учебных заведений связи. 2025. Т. 11. № 4. С. 129–142. DOI:10.31854/1813-324X-2025-11-4-129-142. EDN:UOKLHB
4. Putro H.P., Yuhana U.L., Yuniarno E.M., Purnomo M.H. Source Code Statement Classification Using ANTLR and Ran-dom Forest // Proceedings of the International Seminar on Intelligent Technology and Its Applications (ISITIA, Surabaya, Indonesia, 26–27 July 2023). IEEE, 2023. PP. 60–65. DOI:10.1109/ISITIA59021.2023.10220999
5. Fu J., Zhang K., Zheng J., Li W., Zhu Y. Research and Application of Grey Box Detection Technology Based on Reverse Engineering and Dynamic Pollution Diffusion // Proceedings of the 7th Information Technology and Mechatronics Engineering Conference (ITOEC, Chongqing, China, 15–17 September 2023). IEEE, 2023. PP. 2380–2384. DOI:10.1109/ITOEC57671.2023. 10291380
6. Devine T.R., Campbell M., Anderson M., Dzielski D. SREP+SAST: A Comparison of Tools for Reverse Engineering Machine Code to Detect Cybersecurity Vulnerabilities in Binary Executables // Proceedings of the International Conference on Computational Science and Computational Intelligence (CSCI, Las Vegas, USA, 14–16 December 2022). IEEE, 2022. PP. 862–869. DOI:10.1109/CSCI58124.2022.00156
7. Hu Y., Wang H., Zhang Y., Li B., Gu D. A Semantics-Based Hybrid Approach on Binary Code Similarity Comparison // Transactions on Software Engineering. 2021. Vol. 47. Iss. 6. PP. 1241–1258. DOI:10.1109/TSE.2019.2918326. EDN:ILNITT
8. Adamchuk N., Schlüter W. Automatic Acceptor Generation Based on EBNF Grammar Definition // Proceedings of the 11th International Conference on Advanced Computer Information Technologies (ACIT, Deggendorf, Germany, 15–17 September 2021). IEEE, 2021. PP. 618–622. DOI:10.1109/ACIT52158.2021.9548492
9. Савченко А.А., Минеева Т.А. Язык программирования ассемблер. Разница низкоуровневых и высокоуровневых языков // Тенденции развития науки и образования. 2022. № 92-10. С. 131–135. DOI:10.18411/trnio-12-2022-502. EDN:QMZFNE
10. Нечесов А.В. Некоторые вопросы полиномиально вычислимых представлений для порождающих грамматик и форм Бэкуса-Наура // Математические труды. 2022. Т. 25. № 1. С. 134–151. DOI:10.33048/mattrudy.2022.25.106. EDN:SFDFPB
11. Рязанов Ю.Д., Назин С.В. Построение синтаксических анализаторов на основе синтаксических диаграмм с многовходовыми компонентами // Прикладная дискретная математика. 2022. № 55. С. 102–119. DOI:10.17223/20710410/55/8. EDN:XHAFEV
12. Третьяк А.В., Третьяк Е.В., Верещагина Е.А. Разработка когнитивно-эргономического синтаксиса для нового аппаратно-ориентированного языка программирования // Современная наука: актуальные проблемы теории и практики. Серия: Естественные и технические науки. 2020. № 7. С. 145–153. DOI:10.37882/2223-2966.2020.07.33. EDN:GVAAGG
13. Костенко М.С., Цицарева В.В. Применение эффективных методов обхода графа (поиск в глубину, поиск в ширину) при решении задач второго этапа республиканской олимпиады по учебному предмету «Информатика» // Современное образование Витебщины. 2024. № 2(44). С. 24–26. EDN:WRZIGQ
14. Загинайло М.В., Фатхи В.А. Генетический алгоритм как эффективный инструмент эволюционных алгоритмов // Инновации. Наука. Образование. 2020. № 22. С. 513–518. EDN:UTMAEL
15. Израилов К.Е. Концепция генетической деэволюции представлений программы. Часть 1 // Вопросы кибербезопасности. 2024. № 1(59). С. 61–66. DOI:10.21681/2311-3456-2024-1-61-66. EDN:CBCKRF
16. Израилов К.Е. Концепция генетической деэволюции представлений программы. Часть 2 // Вопросы кибербезопасности. 2024. № 2(60). С. 81–86. DOI:10.21681/2311-3456-2024-2-81-86. EDN:JUBPML
17. He H., Lin L., Yu T., Zhong X. CloneBAS: A Code Clone Detection Method Based on Abstract Syntax Tree and Simhash // Proceedings of the 3rd International Conference on Data Science and Computer Application (ICDSCA, Dalian, China, 27–29 October 2023). IEEE, 2023. PP. 1539–1544. DOI:10.1109/ICDSCA59871.2023.10392292
18. Izrailov K. GREMC: Genetic Reverse-Engineering of Machine Code to Search Vulnerabilities in Software for Industry 4.0. Predicting the Size of the Decompiling Source Code // Proceedings of the International Russian Smart Industry Conference (SmartIndustryCon, Sochi, Russian Federation, 25–29 March 2024. IEEE, 2024. PP. 622–628. DOI:10.1109/SmartIndustryCon61328.2024.10515515
19. Миронов С.В., Батраева И.А., Дунаев П.Д. Библиотека для разработки компиляторов // Труды Института системного программирования РАН. 2022. Т. 34. № 5. С. 77–88. DOI:10.15514/ISPRAS-2022-34(5)-5. EDN:JPGPIY
20. Qu Z., Hu Y., Zeng J., Cai B., Yang S. Method Name Generation Based on Code Structure Guidance // Proceedings of the International Conference on Software Analysis, Evolution and Reengineering (SANER, Honolulu, USA, 15–18 March 2022). IEEE, 2022. PP. 1101–1110. DOI:10.1109/SANER53432.2022.00127
21. Petukhov M., Gudauskayte E., Kaliyev A., Oskin M., Ivanov D., Wang Q. Method Name Prediction for Automatically Generated Unit Tests // Proceedings of the International Conference on Code Quality (ICCQ, Innopolis, Russian Federation, 23 April 2022). IEEE, 2022. PP. 29–38. DOI:10.1109/ICCQ53703.2022.9763112. EDN:TOCMXI
22. Бородин А.В., Юдина М.А., Васильева М.А. О задаче классификации на окрестности корня графа потока управления программы в контексте процесса размножения файловых компьютерных вирусов // Современные наукоемкие технологии. 2019. № 1. С. 31–35. EDN:VUCEWK
23. Куделя В.Н. Методы перечисления путей в графе // Наукоемкие технологии в космических исследованиях Земли. 2023. Т. 15. № 5. С. 28–38. DOI:10.36724/2409-5419-2023-15-5-28-38. EDN:HQEASN
24. Кусаинов А.Р., Глазырина Н.С. Обзор инструментов статического анализа программного кода // Colloquium-Journal. 2020. № 32-1(84). С. 48–52. EDN:JXSKQX
25. Kotenko I., Izrailov K., Buinevich M., Saenko I., Shorey R. Modeling the Development of Energy Network Software, Taking into Account the Detection and Elimination of Vulnerabilities // Energies. 2023. Vol. 16. Iss. 13. P. 5111. DOI:10.3390/en16135111. EDN:CFRQLO
26. Пичугова Л.Н. Перспективные технологии реверс-инжиниринга и быстрого прототипирования // Фундаментальные основы механики. 2023. № 11. С. 43–48. DOI:10.26160/2542-0127-2023-11-43-48. EDN:CYVEES
27. Аралбаев Р.А., Тарасов А.А. Задачи оптимизации и применение алгоритмов генетический алгоритм на практике // Инновации. Наука. Образование. 2021. № 48. С. 1645–1653. EDN:VGUBIH
Рецензия
Для цитирования:
Израилов К.Е., Буйневич М.В. Реверс-инжиниринг программного обеспечения методом смарт-перебора: прототип и эксперимент. Труды учебных заведений связи. 2025;11(6):88-100. https://doi.org/10.31854/1813-324X-2025-11-6-88-100. EDN: TQFFYA
For citation:
Izrailov K.E., Buinevich M.V. Reverse Engineering of Software Using the Smart Brute Force Method: Prototype and Experiment. Proceedings of Telecommunication Universities. 2025;11(6):88-100. (In Russ.) https://doi.org/10.31854/1813-324X-2025-11-6-88-100. EDN: TQFFYA


























