Abstract:
This paper presents a method to recovery high-level control structures from binary executables, which is based on propositional calculus. This method formalizes the control dependence relation between low-level instructions to propositional variables. These variables can be propagated and calculated follow the execution path of the object code, and high-level control structures can be identified by some specified results of propositional invariants. Experimental results show this method can recognize and recovery loops and conditionals effectively, and have the ability of analyzing the predicated instructions.
Key words:
reverse analysis of software,
propositional logic,
control structure recovery,
control dependence
摘要:
提出一种基于命题演算的二进制代码高级控制结构恢复方法。该方法针对低级指令之间的控制依赖关系进行形式化,将其抽象为命题逻辑变元,并且沿着程序执行路径进行传播和演算,通过计算结果中的特定命题常元对隐藏于低级代码中的高级控制结构进行判定。测试结果表明,该方法能够较好地检测并恢复出循环结构和分支结构,且具备针对谓词指令的分析和恢复能力。
关键词:
软件逆向分析,
命题逻辑,
控制结构恢复,
控制依赖
CLC Number:
ZHANG Jing-Bo, DIAO Rong-Cai, LONG Jian-Min, FU Wen. High-level Control Structure Recovery Based on Propositional Calculus[J]. Computer Engineering, 2010, 36(16): 4-6.
张靖博, 赵荣彩, 庞建民, 付文. 基于命题演算的高级控制结构恢复[J]. 计算机工程, 2010, 36(16): 4-6.