Ollydbg/x32dbg/x64dbg贴心伴侣 Version 6.48使用详解和开发历程:
2020.7.24号是个不幸的日子,我人生当中第一次体验到了心碎的感觉。这天晚上,我正在继续忙着整理汇编破解总结资料时,我的一块希捷硬盘(2000G)
突然间硬盘分区不显示了(实际上是两个分区)里边有大量自制的软件,破解资料总结,破解流程图,大白使用视频总结与思维导图,各种网上优秀的共享软件,各种视频学习笔记总结资料等。有太多太多的回忆的东西和情感在里边,一下子全都没有了,那种撕心裂肺,那种希望一下子被磨灭了。我辛苦汉化的IDE for python也有其中,而我自编的《信手拈来按键帮你来》Delphi源码也在虚拟机文件中。还好我最近自编的《Ollydbg/x32dbg/x64dbg贴心伴侣》
不在其中,费了好大劲汉化的RegexBuddy不在里边。DDMS汉化也没有了,辛苦汉化的wind ide for python也没有了,开发了两年多的《信手拈来按键帮你来AHK》也没有了(而且程序的源码在VMDK虚拟机里。。。还有太多太多的东西也没能幸免。在网上创业是非常不容易的,尤其在中国。我也在想,这些年都干了什么?对得起逝去的时间么?为什么没给硬盘多一份备份?为什么这东西突然就挂了?好容易最近编的软件,做的视频取得了一些小收入。又有不幸传来,真是欲哭无泪啊。所以眼下最重要的是把手里的这个《Ollydbg/x32dbg/x64dbg贴心伴侣》卖出去,好买块大硬盘(没有大硬盘的日子是极其悲催的,没有更多的地方下载,安装一个Delphi10.3原来的两块硬盘剩余空间就没有多少了)
接下来还要攒足很多钱去维修这块硬盘。因为这里边有很多有意义,费了大劲整理出来的资料。
《Ollydbg/x32dbg/x64dbg贴心伴侣》是一款汇编破解辅助工具,易在让逆向过程变得轻松简单,让x32dbg中大量的命令行变得简单化操作;同时也是部海量整理的汇编
总结数据库。因为它搜集了看雪论坛精华20部,加密与解密,逆向的原理,吾爱破解论坛精华,飘云阁论坛精华于一身,各种Ollydbg/x32dbg插件与使用视频总结在内的工具
并且这些东西是从实践操作中来的,因为耗费了大量的精力去总结与开发我的软件,之中要不断的测试与完善,我软件中的一些不足,改善使用体验。因为我在设计工具时就在
想,如何让工具可以最大化的为人提供“提示”,提供“指引”等帮助,而不是让人没事去记这么多总结经验在内,因为每个人都各有一套分析的方法和调试的技巧在里边。因
为视角和认识上的不同,所以这个世界才会这么的丰富多彩。
整个程序是这样设计的,模仿OD中的浮动工具栏显示在调试器的右上角区域中。开始设计时共弄了18个按钮,在使用x32dbg/x64dbg和摸索使用其帮助后发现,貌似经常
用到的命令没有这么多,所以后来我又删除了5个。因为每个按钮都要弹出子菜单的命令来,所以全搞上就有三百多个命令项,实在是太壮观了。如图1所示
程序使用Delphi10.3.3来开发,从2019.11开始,就没有停息过,干到现在已经加入了很多解决问题的工具(下面详细来说)如今正当干得如火如荼时,想不到又出了如此
问题。唉。。。真是欲哭无泪了~~ 算了,还是告别烦恼,说说让人兴奋的地方吧~~我的盆栽苹果树都能劫后余生,难道我还不如一颗树吗?
在x32dbg/x64dbg中有初始化调试器的专有命令,这和我们使用的Ollydbg是不同的。也有附加调试器的命令,比如abc commander,比如MindMaster这样的软件在调试过程中都是要使用到的,不然程序会跑飞,直接打脸。为了让附加更加的方便,我重新修改了x32dbg/x64dbg的热键Alt+A,这样在目标程序中,我们直接按键就可以一键式附加过来了(通过模拟一系列窗口按键操作完成,PS说话QT程序真的好恶心)
在x32dbg/x64dbg中的断点也跟Ollydbg有很大的不同,不仅可以设置CC断,硬件断,内存断,还能给dll设置断点,还能设置异常断点。(当然还有配置转向断点)为了方便设置硬件断点和内存断点,这里我自制了一套热键,具体可以参考下面的快捷键一览表。
在x32dbg/x64dbg中的条件断点与Ollydbg有很大的不同(条件断点可以按照指定的条件对目标进行设断干预操作),主要表现在设置界面相当的复杂,因为支持数百种内置函数与表达式(我们现在已经集成到了界面中【大部分吧,仍有一部分漏网,需要日后理解后再添加进来】;扩展的命令也有很多个。与此差不多同时也有关联的则是追踪命令。追踪命令是相当的强大的,这个在OD中是没有的,例如以往我们在某个程序需要使用硬件断点或内存断点来截获到该地址调用处的全局变量A,何时被修改了,何时修改了寄存器数值等操作,我们则需要几步来操作,而使用追踪命令则可以让程序自动化的去判断是否目标数值发生变化?地址在哪里,这是非常强大的地方。我们把这个功能设置到了界面中,
x32dbg/x64dbg中是不支持判断比较字符串的,通过插件,我们解决了此问题。为了更加灵活的使用它,这里界面改成了ListBox或命令脚本两种方式来解决发送【生成的】命令
(并且配有使用要点总结与功能用法实例,相当的贴心与人性化了吧?)
【内存】内存相关命令若干
【控制】控制关命令若干
【变量】声明变量,删除变量,获取变量
【搜索】我们可以在内存中搜索特征码,搜索汇编命令,搜索跨模块间的调用。
【插件】启动加载卸载插件相关命令
【界面】在内存窗口,堆栈窗口快速显示相关的数据,查看当前地址属性哪个内存模块,清除日志等。
【退出】主要功能强杀x32dbg/x64dbg 进程(因为有时程序退出过程很慢,或很卡顿)跨模块提取(主要为了解决有时我们在堆栈窗口中看到的地址很多的时候准备的)
编辑x32dbg.ini or x64dbg.ini方便我们快速对此文件进行编辑。
我们再来详细的说说主界面组成和功能介绍吧:
为了方便调用界面,我们设计了Win+S调出主界面!
【x32dbg/x64dbg/Ollydbg常用断点自动下断】这个是参考《加密与解密第四版》操作系统部分函数属性哪一个进程文件制作出来的。我们在使用Ollydbg's StrongOD等下断插件或浮动工具栏时发现有优点了不足;有些部分是死的,不方便用户日后维护。另外就是x32dbg/x64dbg官方的主页上虽然给了很多的下断相关的插件,但是我们长期使用中发现这些工具有很多的问题。其中最大的问题就是兼容性有问题,一旦升级功能就不正常了,除非你会编程开发才能解决。再有不能像Ollydbg's StrongOD那样批量下断,纵然有那样的插件也需要一个一个来点击设断,非常的不方便。
通过我们的Delphi编程,我们实则的单个下断与批量下断,并且非常方便维护升级。
另外,界面中另设了一键跳转到条件断点的机关,方便将断点转移。
顶部设为三组快速跳转标签页的机关。可搜索,可直接点选转移。
【破解关键字大全】设计时考虑到复制OD或x32dbg/x64dbg的字符串参考列表到剪贴板,这样就不需要一个一个查看设断了,根据经验自动化给这些地址设上断点。
设断点时也分为两种:1种是F1模拟按键方式,第2种方式采用脚本的方式来完成。
【模糊代码查询】OD支持命令序列和模糊代码搜索两种。通过查询和模仿案例,我们就能快速的定位代码了。
特别是破解过以前的版本,用这种方法定位是非常高效的。
【特征码组合猜想】是在模糊代码查询的基础上,一次灵感的迸发后想到的解决方案,主要为了解决在x32dbg/x64dbg中没有模糊搜索的命令和替换码,只能模糊搜索2进制数值
所以想到,何不自己猜测目标程序的特定位置长啥样来定位呢?这是非常有挑战性的解决和定位方法。
【近跳完跳速查】在《加密与解密第四版》中就有类似的表,所以我还是集成到了程序中,方便在迷糊时使用和查询下好了。
【条件断点生成器】在该选项卡中共分为三个标签页,它们分别是Ollydbg/x36dbg和给力一跟
Ollydbg主要把OD帮助中的条件断点部分展示给大家 ,并且给出大量的实例,方便点击生成条件断点
x36dbg呢?相比OD的条件断点要复杂了好多倍。使用起来是有难度的,内置的表达式是非常多的,因此掌握起来有难度,因为我们弄了大量的下拉分类菜单,方便调用和生成。
最后一个是给力一跟,上面我们已经说过了,这里不再赘述。
【修改命令大全】从汇编黑客工具箱,《加密与解密第四版》《吾爱破解论坛精华》《飘云阁论坛精华》自己日常修改最多的经验中总结的一些修改命令
【破解套路和定位方法汇总】与上面类似,但也有自己总结的独到的地方,如破解下断25式
【XX语言OEP特征码】目前收录了一些,但我自己认为还不够全面。
【固定基址】有些程序基址不是固定的,所以有时我们需要自己用工具来处理下,但是修改的地方不是那么好记的,因此我弄了两张截图,方便理解和查找,方便恢复记忆。
【大多数软件去广告绝杀】这里总结了一下大多数软件去广告的最有效的方法。
【vmx改来改去】有时我们需要在虚拟机里调试,特别是过虚拟机检测,因为虚拟机VMWARE的配置文件vmx需要来回修改非常麻烦,因此设计了一个一键读取配置的解决方案,
准备了几个方案,方便来回一键式修改。
【幸运草】在破解的时候,我们需要有些自己常用的注册名,这些注册名的位数,转换后的相应代码是经常用到的,所以在破解过程中会给我们提供少许的帮助,所以我就弄了这么一个字符串的东东喽~~
【汇编比较下断】有时您是否遇到过以下问题。有个软件别人破解过,但自己没有搞明白,我想自己再搞搞,同时理解下别人的破解思路和学习下他人的的破解过程,有汇编比较
工具,但却不能一次性的批量下断,遇到本工具就出现了。准备一些比较结果,输入三个地址,程序就自动转换好了,并批量的下好了断点。
最后是快捷键列表:
显示窗口类:
CPU窗口: Alt+C
断点窗口:Alt+B
内存窗口:Alt+M
日志窗口:Alt+L
堆栈窗口:Alt+K
模块窗口/API调用:Alt+E/Ctrl+N
引用:Alt+R
句柄:Alt+W
流程图:Alt+G
线程:Alt+T=======>有问题
脚本:Alt+S/Ctrl+Alt+S=======>有问题
函数Ctrl+Alt+F======>有问题
============================
自定义命令:
Shift+Q 清空CC断点
Ctrl+Shift+Q 清空硬件断点
Ctrl+Shift+Alt+Q 清空内存断点
==============================
Ctrl+H 脱壳时下硬件访问断点时使用。bph 005B7C20,r,2
Ctrl+Shift+1 设置硬件1字节访问断点
Ctrl+Shift+2 设置硬件2字节访问断点
Ctrl+Shift+3 设置硬件4字节访问断点
Ctrl+Shift+4 设置硬件8字节访问断点(仅x64dbg)
Ctrl+Shift+5 设置硬件1字节写入断点
Ctrl+Shift+6 设置硬件2字节写入断点
Ctrl+Shift+7 设置硬件4字节写入断点
Ctrl+Shift+8 设置硬件8字节写入断点 (仅x64dbg)
Ctrl+Shift+9 设置硬件执行断点
Win+Num1 设置一性次内存访问断点 等价rw
Win+Num2 设置一性次内存读取断点 等价r
Win+Num3 设置一性次内存写入断点 等价w
Win+NumDot 设置一性次内存执行断点 等价x
Win+S激活新的窗口
Alt+A目标窗口中按(譬如,亲爱的妹子.exe),得到目标窗口进程的PID,回到命令行处粘即可附加
Ctrl+Shift+G一键定位RVA(x64dbg顶部标题上按)
Alt+Shift+G一键定位FOA(x64dbg顶部标题上按)
Ctrl+Shift+T在x32dbg窗口标题处点击得到x32dbg/x64dbg的完整路径,转换后打开x32dbg.ini/x64dbg.ini
Shift+F2 禁用当前行的F2/CC断点
未来还将继续总结《看雪论坛精华1-20》《吾爱破解论精华》《飘云阁论坛精华》
终身会员制将体验到不断的升级服务和更多的破解总结资料