Reverse Engineering of Software Using the Smart Brute Force Method: Step-by-Step Scheme

Introduction : software vulnerabilities is one of the leading causes of threats to information security. Such vulnerabilities can be countered by directly searching for them in the program code and correcting it. This requires converting the executable code to a higher-level representation that's more suitable for searching and fixes; however, for a number of reasons, existing solutions cannot be considered satisfactory. One of these solutions – an exhaustive search of all possible variants of the source code, converted to a given machine code – is extremely costly in every way. Purpose : developing a less costly and more efficient method of exhaustive searching through source code variants. Methods : quantitative and qualitative comparison of different source code generators, as well as the formalization of this method by writing it in an analytical form. Results : a 7-step scheme for selecting an instance of the source code according to a given machine code is proposed; the authors refer to this method as «smart» because of its optimal combinations of syntactic constructions of the programming language. This method of code generation is based on iterating through paths along the graph of syntactic rules that represent the formal syntax of a programming language in a given space. The syntax is presented as a parameter, which makes its steps completely invariant from the programming language of the source code. After multiple instances of the source code are generated, they are compiled into machine code and compared with the specified instance; if they match, the task of decompilation by smart exhaustive search is considered solved. Practical significance : despite the time cost of using exhaustive searching in solving such tasks, the smart iteration method has shown expert efficiency in a number of application scenarios; thus, it can be directly applied to reverse engineering. Discussion : the qualitative optimization of the "smart" exhaustive search can significantly improve it by genetic algorithms used.

Authors

Institutions

Publication Details

Journal
Proceedings of Telecommunication Universities
Published
2025-09-01
DOI
https://doi.org/10.31854/1813-324x-2025-11-4-129-142
Citations
1
Primary Topic
Software Testing and Debugging Techniques
Type
article
Field-Weighted Citation Impact
2.31
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Reverse Engineering of Software Using the Smart Brute Force Method: Step-by-Step Scheme

Mikhail Buinevich, Konstantin Izrailov
1 citations
Proceedings of Telecommunication Universities
Software Testing and Debugging Techniques
2.31
article

Reverse Engineering of Software Using the Smart Brute Force Method: Step-by-Step Scheme

Mikhail Buinevich, Konstantin Izrailov
article en
1 citations

Abstract

Introduction : software vulnerabilities is one of the leading causes of threats to information security. Such vulnerabilities can be countered by directly searching for them in the program code and correcting it. This requires converting the executable code to a higher-level representation that's more suitable for searching and fixes; however, for a number of reasons, existing solutions cannot be considered satisfactory. One of these solutions – an exhaustive search of all possible variants of the source code, converted to a given machine code – is extremely costly in every way. Purpose : developing a less costly and more efficient method of exhaustive searching through source code variants. Methods : quantitative and qualitative comparison of different source code generators, as well as the formalization of this method by writing it in an analytical form. Results : a 7-step scheme for selecting an instance of the source code according to a given machine code is proposed; the authors refer to this method as «smart» because of its optimal combinations of syntactic constructions of the programming language. This method of code generation is based on iterating through paths along the graph of syntactic rules that represent the formal syntax of a programming language in a given space. The syntax is presented as a parameter, which makes its steps completely invariant from the programming language of the source code. After multiple instances of the source code are generated, they are compiled into machine code and compared with the specified instance; if they match, the task of decompilation by smart exhaustive search is considered solved. Practical significance : despite the time cost of using exhaustive searching in solving such tasks, the smart iteration method has shown expert efficiency in a number of application scenarios; thus, it can be directly applied to reverse engineering. Discussion : the qualitative optimization of the "smart" exhaustive search can significantly improve it by genetic algorithms used.

Proceedings of Telecommunication UniversitiesVol. 11(4)
Academy of the State Fire Service EMERCOM of Russia (RU), MIREA - Russian Technological University (RU)
Openalex Percentile: Top 11%
Software Testing and Debugging Techniques
2.31
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.