-
-
[原创]WTDebug 可以运行跟踪的注入型调试器
-
发表于:
2011-6-13 11:20
5925
-
[原创]WTDebug 可以运行跟踪的注入型调试器
下载地址
408K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4u0S2P5h3k6A6L8r3g2Q4x3X3g2U0L8$3#2Q4x3V1k6*7K9q4)9J5k6r3y4F1i4K6u0r3k6X3W2D9k6i4y4Q4x3V1k6V1z5h3q4S2j5X3t1J5z5q4)9J5k6o6V1#2y4X3u0Q4x3X3b7I4x3h3f1H3i4K6u0V1j5h3q4X3k6q4)9J5k6o6l9H3x3e0g2U0y4e0g2V1j5U0M7K6k6q4)9J5c8R3`.`.
这个调试器其主要功能就是跟踪,实际上不是用来调试的,做了个调试器的外壳是只是为了好玩。
因为要调试,是需要暂停其他线程,只运行一个线程,慢慢调试,但是我使用的是多线程同时跟踪,如何同时调试多个线程?人毕竟不是机器人,我也只能跟踪所有的线程了,所以你可以看到,点“自动跟踪”或者“运行”以后,你将无法再单步调试。
运行方式有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 的力量,这样我就可以节省很多工作。
好了,有什么问题,再跟我说,前段时间都比较忙,基本都没什么时间,现在比较轻松了,呵呵。
如果你要加入我的开发团队,让程序更加完善,欢迎加入
139K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3S2A6i4K6u0W2j5X3q4A6k6s2g2Q4x3X3g2U0L8$3#2Q4x3V1k6U0K9r3W2F1j5h3S2S2L8Y4N6#2i4K6u0r3j5X3I4G2k6#2)9J5c8X3W2@1k6h3#2Q4x3V1j5K6j5e0u0U0y4U0R3K6x3h3y4U0y4X3j5J5j5U0l9^5k6h3q4U0y4r3q4X3y4e0S2Q4x3X3g2Z5N6r3#2D9
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课