反编译过程中的堆栈跟踪方法、装置及反编译器制造方法及图纸

技术编号:5265872 阅读:474 留言:0更新日期:2012-04-11 18:40
一种反编译过程中的堆栈跟踪方法、装置及反编译器,该方法包括步骤:顺序执行指令,根据每条指令对堆栈指针寄存器ESP的值的影响,对预设整型变量进行相应的加减操作,所述预设整型变量用以表示系统当前ESP寄存器的值与函数入口处系统ESP寄存器的值之间的偏移量。本发明专利技术方案通过预设整型变量来模拟堆栈寄存器ESP的行为,根据在执行指令时各指令对堆栈指针寄存器ESP的值的影响,来对该预设整型变量执行相应的加减操作,据此模拟CPU的压栈入栈等堆栈操作行为,从而可以根据该预设整型变量来准确地识别函数执行过程中的参数、局部变量,可以给反编译过程提供更多准确的信息,进而提高了最终反编译结果的正确性和可读性。

【技术实现步骤摘要】

本专利技术涉及反编译
,特别涉及一种反编译过程中的堆栈跟踪方法、一种 反编译过程中的堆栈跟踪装置以及一种反编译器。
技术介绍
反编译过程是软件逆向工程中的一个重要组成部分,对于软件的分析、理解有着 重要的作用,其读入机器码,产生与最初源代码相似的高级语言代码,该高级语言代码在功 能上与最初的源代码一致。执行反编译过程的反编译器的典型架构分为前端、中端和后端, 其中,前端是个依赖于机器的模块,其读取机器代码,进行句法分析和语义分析,生成中间 代码;中端读取中间代码,生成控制流程图,进行数据流分析和控制流分析;后端生成高级 代码。在上述反编译过程的各步骤中,除了数据流分析之外,其余的各部分在理论和技 术上均已成熟,数据流分析过程是至今都尚未很好解决的难点,其进行的工作主要包括有 死寄存器和条件码的清除、条件码和寄存器的拷贝传播、数据类型的识别和传播、寄存器变 量的识别和清除。其中,寄存器变量可以分为全局变量、局部变量和参数,其中局部变量、参 数与堆栈有着密切的联系,因此,堆栈跟踪成为进行数据流分析的必要条件。图1是80*86系列的堆栈示意图,如图1所示,在80*86系列中,堆栈是本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:陈耿标林毓双
申请(专利权)人:广州迪庆电子科技有限公司
类型:发明
国别省市:81

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1