RUS  ENG
Full version
JOURNALS // Proceedings of the Institute for System Programming of the RAS // Archive

Proceedings of ISP RAS, 2024 Volume 36, Issue 3, Pages 139–160 (Mi tisp893)

About methods of extracting algorithms from binary code

I. I. Kulaginab, V. A. Padaryanabc, V. A. Koshkina

a Ivannikov Institute for System Programming of the RAS
b Lomonosov Moscow State University
c National Research University Higher School of Economics, Moscow

Abstract: The paper proposes an iterative method for extracting algorithms from a binary code and constructing their high-level representation. The construction of algorithms using the proposed method is implemented in the form of analysis of dynamic slices. The method is based on an algorithm for tracking data flow in the forward and backward directions. Also, two levels of presentation of the extracted algorithms are proposed: a functional slice diagram and an algorithm execution diagram. The functional slice diagram is a structured slice representation and is a lower-level representation than the algorithm execution diagram. The flowchart of the algorithm is a representation consisting only of function models and their parameters. The proposed method for constructing algorithms and methods of their presentation allow to increase the analyst's productivity in solving problems of code security analysis, to improve the quality of the obtained analysis results. The developed ways of representing algorithms can be used to implement algorithms for automatic analysis of code security. In addition, the authors reviewed the approaches to extracting algorithms from binary code and how they are represented by static code analysis tools and considered some of their shortcomings and limitations.

Keywords: dynamic code analysis, binary code analysis, algorithm recovery, slice building

DOI: 10.15514/ISPRAS-2024-36(3)-10



© Steklov Math. Inst. of RAS, 2026