发明名称 基于动态反编译技术的二进制应用程序调试方法
摘要 本发明涉及一种基于动态反编译技术的二进制应用程序调试方法,调试人员用调试器启动应用程序或指定需要调试的进程的进程号,如果由调试器启动被调试程序,则调试器记录下子进程的进程号;当执行程序至断点时,操作系统挂起被调试程序,调试器得到控制权;通过利用操作系统提供的系统调用或应用编程接口(API),获得被调试程序的指令,利用动态反编译技术对指令进行反编译,并将得到的C语言代码显示给调试人员。本发明有益的效果:在于能够方便调试人员对二进制应用程序进行调试而不用阅读复杂难懂的汇编代码,能够有效提高调试程序的效率。
申请公布号 CN101414278A 申请公布日期 2009.04.22
申请号 CN200810162529.8 申请日期 2008.12.01
申请人 浙大网新科技股份有限公司 发明人 卜家俊;陈华;金涛;费海林;张毅超;盛其彬;罗琰;蔡晖
分类号 G06F11/36(2006.01)I;G06F9/45(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 杭州九洲专利事务所有限公司 代理人 陈继亮
主权项 1. 一种基于动态反编译技术的二进制应用程序调试方法,其特征在于:包括以下步骤:(1). 调试人员用调试器启动应用程序或指定需要调试的进程的进程号,如果由调试器启动被调试程序,则调试器记录下子进程的进程号;(2). 当执行程序至断点时,操作系统挂起被调试程序,调试器得到控制权;(3). 调试器利用操作系统提供的系统调用或应用编程接口得到被调试程序现场,并得到程序计数器;(4)。通过操作系统提供的应用编程接口,根据程序计数器指向的地址获得程序计数器附近的指令二进制码;(5). 调试器将获得的程序二进制指令解码并进一步反编译成为C语言代码,并将代码显示给用户;(6). 根据用户指定的操作,读取寄存器或内存地址中的值,并利用反编译时的信息将其对应到C语言代码中的变量值,并显示给用户;(7). 根据用户指定的操作,在程序中添加断点,或对程序进行单步跟踪执行,当程序连续执行时,根据用户的指定,对程序进行或不进行动态反编译操作。
地址 310007浙江省杭州市西湖区天目山路226号12层