在这里顺便给大家转载一款我们国人做的仿OD界面调试器,YzDbg 这是原创作者在看雪发布的帖子:
http://bbs.pediy.com/thread-217252.htm 在使用过程中有什么bug或者有什么问题可以在作者原帖去问,
这是原作者的发布时信息:
[分享]我自写自用的调试器x32和x64位 原作者是看雪的sssccc
起因:
在以往的逆向中,总觉得OD有些不方便的地方.在调试器中,楼主个人比较喜欢Windbg 这种调试器,窗口想怎么拖,想怎么停靠都行,随心所欲.也没有IDA那种鼠标跟随显示反汇编的小窗口等等,其次就是OD的更新太慢了,几年才更新一次,要等OD的64位版本不知道还要等多少年,虽然现在已有64位的调试器x64dbg,更新也很频繁,但跟OD还是有一段距离
综合种种原因,让楼主突然想到毛爷爷曾经说过 ”自己动手,丰衣足食”,所以楼主决定积极响应号召,就自己动手吧,而且身为一枚逆向人员,有款自己的调试器,在逆向上还是很方便的.于是楼主投入了很多的业余时间,断断续续写了很久….很久…
YzDbg介绍:
它是一款类似OD的32/64调试器(其中64位版本即能调试32位程序也能调试64位程序), 基于MFC多文档界面开发的,由楼主一人独立完成,开发环境为vs2010,界面全部采用GDI自绘,方便编译,如果用第三方界面库的话,编译太麻烦了(楼主不喜欢,呵呵),而且GDI使用比较灵活想怎么画就怎么画.汇编引擎采用XEDParse, 反汇编引擎采用BeaEngine,模拟器引擎采用unicorn.
因为用OD很多年了,已经养成了一些OD的使用习惯,所以在功能上和用户体验上全部山寨OD,因此大部分功能都是逆向OD而来.
目前OD1的功能,除了Ctrl+A分析功能,还没时间写,其他都写完了,然后看到OD2.0和x64dbg中有一些不错的功能也都加进来了,还有一些如IDA的鼠标跟随显示小窗口,硬件条件断点,类似CE的地址监视功能,也都写了.
之后又看到<软件保护及分析技术>一书中提到的伪调试引擎和模拟器, 这两功能觉得不错也写了, 伪调试引擎可以用来过一般的壳检测(如vmp),至于驱动保护,那就得自己写驱动过了.而模拟器可以用来模拟执行代码,同时不影响真实的执行环境,用来跟踪调试还是不错的.
总之就是看到什么功能好就加什么功能,尽量给调试带来方便,呵呵
至于反编译的功能,本来想加入Snowman的,但是Snowman反编译出来的代码效果不好,跟IDA的F5没法比..所以还是不加了..
另外支持的系统有xp32/64,win2003 32/64, win2008 32/64,win7 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的
支持命令行,目前支持的命令有 d,dump,db,dw,dd,dq,df32,df64,df80,da,du,dutf8,dasm,bp,bc,mr,mw,mc,若大家需要,后续可以再继续添加命令,不过楼主一般都只用dd..
支持简单的条件表达式,表达式的用法跟OD一样
下面给出支持的表达式运算符
( ),[ ],!,~,*,/,%,+,-,<<,>>,<,<=,>,>=,==,!=,&,^,|,&&,||,in,sfind,(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的用法…
至于OD的Ctrl+A代码分析功能,现在已经在写着,争取在下个版本中加进来,还有什么功能呢?暂时没想到,以后想到什么再加什么吧….
Bug或建议反馈:
因为以前都是楼主一个人在用,能发现的bug有限,而且64位版本是在32位版的基础上修改而来,可能Bug比32位版多,而且很多功能楼主仅仅是写了出来,但是都没用过,如消息断点等.因此大家在使用中若是发现有能重现的bug,请及时联系楼主反馈,楼主将会尽快修复
如果大家有好的建议或意见,也可以联系楼主
可以直接回帖进行反馈,也可以用如下方式进行反馈
小Q:411738567
邮箱:411738567@qq.com
因为楼主时间比较紧,有事请留言说明,看到会回复,望体谅,如果是bug,请尽量描述详细,谢谢
图片展示:
这里以64位版本为例,上几张图片
1.界面介绍
2.显示模式介绍
3.源码调试
4.模拟器调试