-
-
[原创]WTDebug 可以运行跟踪的注入型调试器
-
发表于:
2011-6-13 11:20
5776
-
[原创]WTDebug 可以运行跟踪的注入型调试器
下载地址
http://www.rayfile.com/zh-cn/files/d9aabb28-956b-11e0-aafd-0015c55db73d/
这个调试器其主要功能就是跟踪,实际上不是用来调试的,做了个调试器的外壳是只是为了好玩。
因为要调试,是需要暂停其他线程,只运行一个线程,慢慢调试,但是我使用的是多线程同时跟踪,如何同时调试多个线程?人毕竟不是机器人,我也只能跟踪所有的线程了,所以你可以看到,点“自动跟踪”或者“运行”以后,你将无法再单步调试。
运行方式有3种:
第一种是注入正在运行的进程,点“文件”->“注入EXE”,选择你要注入的进程,确定,然后工作线程注入了目标进程,这时候已经自动进入“自动跟踪”模式,你不能单步调试,当运行一段时间以后,你就可以获取跟踪的结果了,点“调试”->“导出EXE”,跟踪到的进程运行过的代码,将会以可执行文件的方式保存到 C:\export 文件夹中,当前这个文件都只是可执行文件的部分,也就是曾经运行过的部分的代码,而不是真的可以执行。同时会导出用于 IDA 分析的 IDC 脚本文件,用 IDA 载入可执行文件,然后再导入 IDC 脚本,就可以用 F5 分析了。
第二种是直接点“文件”->“打开EXE” 点“调试”->“运行”,然后程序会正常的运行,然后点“调试”->“自动跟踪”,就开始了自动跟踪,当运行一段时间以后,你就可以获取跟踪的结果了,点“调试”->“导出EXE”,跟踪到的进程运行过的代码,将会以可执行文件的方式保存到 C:\export 文件夹中,当前这个文件都只是可执行文件的部分,也就是曾经运行过的部分的代码,而不是真的可以执行。同时会导出用于 IDA 分析的 IDC 脚本文件,用 IDA 载入可执行文件,然后再导入 IDC 脚本,就可以用 F5 分析了。
第三种是比较笨的方法了,点“文件”->“打开EXE” 点“调试”->“自动跟踪” 这样它会将启动过程也跟踪进去,速度将会很慢,我是不推荐的。
其原理是将运行过的代码提取出来,其他没有运行过的代码都 NOP 掉,然后DUMP为可执行文件,顺便生成一个IDC脚本,可以记录下很多有趣的东西,然后放到IDA中分析。
尝试了内存断点来做,发现要花很多时间而且不一定能做好,最后改用TF来做,速度是比较慢,但是如果自动分析跳过系统DLL那么速度将会快很多,而现在是跟踪进入了系统DLL了!使用硬件断点+INT3断点来步过系统DLL,那速度将会提高很多,这个将来再做吧,或者你能帮我做做,^_^
在这里感谢一下,exile 和 掘墓人,exile 的HOOK代码介绍了一种非常规的Debug方式,掘墓人做的调试器让我节省了很多时间。
我曾经尝试过代替 IDA 来做语法分析,结果发现太复杂了,而且太浪费时间,所以我决定借用 IDA 的力量,这样我就可以节省很多工作。
好了,有什么问题,再跟我说,前段时间都比较忙,基本都没什么时间,现在比较轻松了,呵呵。
如果你要加入我的开发团队,让程序更加完善,欢迎加入
http://hi.baidu.com/chinahanwu/blog/item/3a2c6831cc6f2b08eac4af58.html
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)