首页
社区
课程
招聘
[分享]我自写自用的调试器x32和x64位
发表于: 2017-4-26 20:51 69036

[分享]我自写自用的调试器x32和x64位

2017-4-26 20:51
69036

起因:

在以往的逆向中,总觉得OD有些不方便的地方.在调试器中,楼主个人比较喜欢Windbg 这种调试器,窗口想怎么拖,想怎么停靠都行,随心所欲.也没有IDA那种鼠标跟随显示反汇编的小窗口等等,其次就是OD的更新太慢了,几年才更新一次,要等OD64位版本不知道还要等多少年,虽然现在已有64位的调试器x64dbg,更新也很频繁,但跟OD还是有一段距离

综合种种原因,让楼主突然想到毛爷爷曾经说过 自己动手,丰衣足食”,所以楼主决定积极响应号召,就自己动手吧,而且身为一枚逆向人员,有款自己的调试器,在逆向上还是很方便的.于是楼主投入了很多的业余时间,断断续续写了很久….很久

YzDbg介绍:

它是一款类似OD32/64调试器(其中64位版本即能调试32位程序也能调试64位程序), 基于MFC多文档界面开发的,由楼主一人独立完成,开发环境为vs2010,界面全部采用GDI自绘,方便编译,如果用第三方界面库的话,编译太麻烦了(楼主不喜欢,呵呵),而且GDI使用比较灵活想怎么画就怎么画.汇编引擎采用XEDParse, 反汇编引擎采用BeaEngine,模拟器引擎采用unicorn.

因为用OD很多年了,已经养成了一些OD的使用习惯,所以在功能上和用户体验上全部山寨OD,因此大部分功能都是逆向OD而来.

目前OD1的功能,除了Ctrl+A分析功能,还没时间写,其他都写完了,然后看到OD2.0x64dbg中有一些不错的功能也都加进来了,还有一些如IDA的鼠标跟随显示小窗口,硬件条件断点,类似CE的地址监视功能,也都写了.

之后又看到<软件保护及分析技术>一书中提到的伪调试引擎和模拟器, 这两功能觉得不错也写了, 伪调试引擎可以用来过一般的壳检测(vmp),至于驱动保护,那就得自己写驱动过了.而模拟器可以用来模拟执行代码,同时不影响真实的执行环境,用来跟踪调试还是不错的.

总之就是看到什么功能好加什么功能,尽量给调试带来方便,呵呵

至于反编译的功能,本来想加入Snowman,但是Snowman反编译出来的代码效果不好,IDAF5没法比..所以还是不加了..

另外支持的系统有xp32/64,win2003 32/64, win2008 32/64win7 32/64,win8 32/64,win10 32/64, win Vista 32/64,这些楼主都简单的测试过,不过win7 64位因为楼主一直用这个系统,所以基本上这个系统没什么问题,其他系统就不好说了,毕竟其它系统只是简单的测试

YzDbg已实现的功能:

基本的调试功能(单步,忽略异常单步,执行到返回,自动步进/步过等等)

支持int3断点,硬件断点,内存断点,消息断点等

支持源码调试

支持解析pdb符号文件,解析导入库文件,解析API参数

支持插件

支持脚本,脚本是在ODbgScript源码的基础上改的,所以用法跟ODbgScript一模一样,应该也能兼容大部分的OD脚本,这里对ODbgScript的作者表示感谢

支持模拟器调试,能够在模拟器上进行模拟调试,用来分析算法还是可以的

支持调试dll

支持解析map文件,ida或者vs

支持命令行,目前支持的命令有 ddumpdbdwdddqdf32df64df80dadudutf8dasmbpbcmrmwmc,若大家需要,后续可以再继续添加命令,不过楼主一般都只用dd..

支持简单的条件表达式,表达式的用法跟OD一样

下面给出支持的表达式运算符

( )[ ]!~*/%+-<<>><<=>>===!=&^|&&||insfind(BYTE)(CHAR)(WORD)(SHORT)(DWORD)(INT) (DWORD64)(INT64)(FLOAT)(DOUBLE)(ASCII)(UNICODE)(WINTEXT)

下面给出支持的表达式运算操作数

常规寄存器,eax,ax,ah,al

如果表达式中出现符号,如api,会自动把符号转换成地址,进行计算

64位版本的操作数 支持 r8-r15.

这里注意下,表达式中若有数字,将会视为十六进制数

给个例子如: [eax] == 00401000

还有很多功能,这里不一一介绍,大家可以自己去发现 ^_^

用法跟OD一模一样,简单的说,你会用OD,你就会用它,如果你不会用OD,可以百度OD的用法


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

收藏
免费 35
支持
分享
打赏 + 13.00雪花
打赏次数 4 雪花 + 13.00
 
赞赏  严启真   +10.00 2020/01/30 请问下YzDbg什么时候更新啦,在追踪中加入了自动步进功能了吗?只有步过,能增加的话跟踪VM就不错了,热切期待更新版本……
赞赏  一位没有留下痕迹的看雪读者   +1.00 2019/09/06
赞赏  一位没有留下痕迹的看雪读者   +1.00 2017/05/23
赞赏  百事可口   +1.00 2017/05/18
最新回复 (294)
雪    币: 393
活跃值: (224)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
2
很久不用od了,更新不易  帮你顶顶
2017-4-26 21:03
0
雪    币: 783
活跃值: (1121)
能力值: ( LV5,RANK:78 )
在线值:
发帖
回帖
粉丝
3

就佩服你们这群没我帅但是叼大的


没有插件文档...- - 


伪调试引擎试了一下..没有成功过掉壳..0 0


推荐师傅修改一下.进程退出之后 状态改为进程终止..当调试器被壳检测到之后 仍在运行中..

看到了Sign文件 但是 没有找到查到的结果再那里显示..

可能是 没有加入分析功能的缘故..字符串搜索有些问题搜不全..常量搜索也有bug 搜不到东西.字符串搜索 再第一次搜索之后 第二次再搜索无反应.

暂时 只找出了这些问题.条件断点之类的 没有测试..

感谢师傅 提供工具..

2017-4-26 21:08
0
雪    币: 6541
活跃值: (4501)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
4

哇,好厉害,这得要多久才能完成

既然其他地方都可以仿od,那最最关键的一点,如果支持od的插件,就爽了,

编译出来的文件不知道怎么会这么大,一个小插件就是5MB以上,我觉得应该会很小的

能有一个类似或者仿写的反调试插件就好了类似od的strongOD x64dbg的ScyllaHide

当然比其他调试器好的地方也很多,如果后期大家重视一起去修改,增加一些插件,或者如果可能的话兼容od插件,要不了多久,大家都会去用了

2017-4-26 21:14
0
雪    币: 465
活跃值: (667)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
不错,支持。
我觉得当个白帽子不错,一边玩技术,一边挣钱。
2017-4-26 21:19
0
雪    币: 79
活跃值: (373)
能力值: ( LV11,RANK:195 )
在线值:
发帖
回帖
粉丝
6
厉害  不错  支持下,看下好使用不
2017-4-26 21:23
0
雪    币: 244
活跃值: (454)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
厉害了我的哥。
2017-4-26 21:27
0
雪    币: 775
活跃值: (2292)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
发现一把轩辕剑,谢谢楼主的神器
2017-4-26 21:35
0
雪    币: 12012
活跃值: (4111)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
强大,专门登录支持一下楼主,能自己写调试工具我觉得很厉害了。希望楼主能不断完善自己调试器,超越OD,另外非常感谢分享。
2017-4-26 21:58
0
雪    币: 1361
活跃值: (1116)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10

首先感谢大家的支持
感谢3楼的测试,你用的可能是伪调试引擎模式,这个模式下调试器没有捕捉进程退出事件,之前想过钩API来拦截进程退出事件,不过怕成为一个检测点.所以就不拦截了...你说被壳检查到了,能否告知下是什么壳?我加个壳试试.然后那个Sign文件,你说的是ShellSign.txt这个吗? 这个我从查壳工具找的文件,是壳或编译器的特征码,显示在模块窗口->编译器/外壳 栏中,现在只有32位的特征码,64位还没发现,可能是我没仔细找吧..你说的其它问题能否说得再详细些?我这用着没什么问题啊...


回4楼,兼容OD插件不好做,插件接口不一样.

反调试插件的话,等我有时间会写一个类似sod的插件

然后文件大是因为mfc的关系,编译中我选择的是"在静态库中使用 MFC",所以没办法,所以比较大.呵呵


回9楼,有时间就会一直完善的.

至于插件文档,如果大家有需要,我会整理出来

2017-4-26 21:59
1
雪    币: 4928
活跃值: (967)
能力值: ( LV9,RANK:175 )
在线值:
发帖
回帖
粉丝
11
蛮像OD的咯,多谢分享
2017-4-26 22:49
0
雪    币: 6258
活跃值: (3320)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
对于楼主,我只能说666
2017-4-27 01:43
0
雪    币: 152
活跃值: (29)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
谢谢分享
2017-4-27 02:12
0
雪    币: 427
活跃值: (488)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
精神可以,不过我关心的是你的重点--过游戏保护成功,产生money没有?
2017-4-27 07:38
0
雪    币: 346
活跃值: (1436)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
厉害厉害    感谢分享       
2017-4-27 08:14
0
雪    币: 133
活跃值: (233)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
这么强大,mfc的图标该美化一下,
2017-4-27 08:38
0
雪    币: 221
活跃值: (2306)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
如果能过掉强壳。就厉害了。。
2017-4-27 08:56
0
雪    币: 3797
活跃值: (769)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
看看楼主  看看自己    唉  只能膜拜
2017-4-27 10:20
0
雪    币: 465
活跃值: (667)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
19
gaoan 看看楼主 看看自己 唉 只能膜拜
看看楼主    看看自己        唉    只能膜拜-------------

-------》自己,哈哈,还是自己比楼主帅!
2017-4-27 11:03
0
雪    币: 4984
活跃值: (3330)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
以后果断扔掉OD了,  直接用楼主的神器
2017-4-27 12:00
0
雪    币: 2347
活跃值: (58)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
很厉害吖  mark
2017-4-27 12:07
0
雪    币: 2058
活跃值: (2521)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
好样的!!!
2017-4-27 14:57
0
雪    币: 47147
活跃值: (20420)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
23
给我份简历,我帮你推荐下:kanxue@pediy.com
2017-4-27 14:58
0
雪    币: 1042
活跃值: (495)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
下载简单的使用了下,风格个人比较喜欢,特别是能同时调试x32  and  x64,非常方便。希望楼主能坚持更新,修复BUG。加强反反调试。最后希望楼主找份好工作,月入上百万,从此走上巅峰。
2017-4-27 15:57
0
雪    币: 6664
活跃值: (957)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
太牛了,开源下就更好了
2017-4-27 16:17
0
游客
登录 | 注册 方可回帖
返回
//