Abstract:
Binary program comprehension and analysis are based on Control Flow Graph(CFG) which is the key to reconstruct and reengineering a program and is the basis of software reversing engineering. Classic CFG restoring algorithm that is relevant to program structure and complier information is not applicable to some other binary program. Aiming at this problem, this paper presents a new CFG restoring algorithm that is based on static simulation strategy. The new algorithm derives from the classic CFG restoring method. It compares the new algorithm with other CFG recovery algorithms on performance. Results show that the algorithm can restore control flow from binary program more completely than others.
Key words:
Control Flow Graph(CFG),
static simulation,
binary program
摘要: 恢复完整的程序控制流图是软件逆向分析的关键,但传统恢复算法依赖于程序结构和编译器信息,不具通用性,无法满足无结构的二进制程序控制流恢复的需要。针对该问题,在传统控制流恢复算法的基础上,提出一种基于静态模拟策略的通用二进制程序控制流恢复算法,并与传统控制流恢复算法、基于切片技术的控制流恢复算法和动态控制流恢复算法在性能上进行比较分析,结果表明,该算法能够恢复出更加完整的控制流图。
关键词:
控制流图,
静态模拟,
二进制程序
CLC Number:
HU Gang, ZHANG Beng, LI Qing-Bao, ZHANG Cui-Yan. Control Flow Restoring Algorithm for Binary Program Based on Static Simulation[J]. Computer Engineering, 2011, 37(5): 276-278,281.
胡刚, 张平, 李清宝, 张翠艳. 基于静态模拟的二进制控制流恢复算法[J]. 计算机工程, 2011, 37(5): 276-278,281.