第70章 调试工具

70.1 tracer

我很少使用debugger,往往用自己研发的tracer工具对程序进行跟踪和调试。[1]

近期以来,我完全不用debugger了。debugger就是一个在程序执行期间辨别函数的参数,或者在某个断点查看寄存器状态的工具。每次都使用debugger进行调试,未免过于烦琐。所以我就自己编写了tracer工具。tracer程序采用控制台界面,能够从命令行里直接发送命令,同样可以在函数的执行过程中进行中断,并且还能在任意地址设置中断、查看进程状态和修改数据,完成各种各样的任务。

话说回来,在学习和摸索的过程中,初学者还是应当熟悉和掌握debugger程序的使用方法,用debugger查看寄存器的状态变化[2],观察标识位、数据,并手动修改各项数据,验证数据对程序的影响。

70.2 OllyDbg

OllyDbg是一款十分流行的用户模式(user-mode,Ring 3级)调试程序。它的官方网站是: http://www.ollydbg.de/

本书的附录F.2收录了OllyDbg常用的快捷键。

70.3 GDB

GDB不是一款图形化调试器,因而不太受逆向工程研究人员关注。但是它的功能更为强大,可谓独具特色。

本书的附录F.5收录了部分GDB常用指令。


[1] tracer工具的下载地址是http://yurichev.com/tracer-en.html。

[2] 经典的SoftICE、OllyDbg和WinDbg工具能够用高亮信息提示寄存器变化。