首页
社区
课程
招聘
[原创]WTDebug 可以运行跟踪的注入型调试器
发表于: 2011-6-13 11:20 5924

[原创]WTDebug 可以运行跟踪的注入型调试器

2011-6-13 11:20
5924
下载地址
        29bK9s2c8@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 的力量,这样我就可以节省很多工作。

好了,有什么问题,再跟我说,前段时间都比较忙,基本都没什么时间,现在比较轻松了,呵呵。

如果你要加入我的开发团队,让程序更加完善,欢迎加入
9e6K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3S2A6i4K6u0W2j5X3q4A6k6s2g2Q4x3X3g2U0L8$3#2Q4x3V1k6U0K9r3W2F1j5h3S2S2L8Y4N6#2i4K6u0r3j5X3I4G2k6#2)9J5c8X3W2@1k6h3#2Q4x3V1j5K6j5e0u0U0y4U0R3K6x3h3y4U0y4X3j5J5j5U0l9^5k6h3q4U0y4r3q4X3y4e0S2Q4x3X3g2Z5N6r3#2D9

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 349
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
实在不知道这有什么用。按照第二种方法生产的exe文件,前面有n个nop,后面就一部分导入表。IDA无法分析函数,自然无法F5.
2011-6-13 12:22
0
雪    币: 1231
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
导出的 exe 目前不是很能兼容 IDA ,不过这些也好解决,看看他的算法是怎么样的,慢慢修改,但是有趣的是即使不能使用 F5 分析的部分也能使用图形分析,我DUMP的是有内存空间的可执行文件,但是有些程序不是在自己的内存空间运行,而是在堆栈中运行,比如 QQ 就是如此,我下一步得导出这些在堆栈中执行的代码,不论什么事情,都不可能一下就成功,都得慢慢的改进,是吧?
2011-6-13 16:25
0
游客
登录 | 注册 方可回帖
返回