一、学习背景
1、本专辑灵感源于吾爱破解的yyhd大神,一个从零到一的破解系列,也为了补充一下自己的短板
2、使用软件 DIEx64、x64dbg、OD、Immunity Debugger,与原文软件略有不同,因为是比较老版本的文章,这里选择了比较新的主流的软件进行学习
3、软件功能 DIEx64,支持64位和32位数,主要进行查壳,并且die也能查询是什么语言写的并且查什么壳,OD分析的是程序的汇编代码
二、本篇目标案例
我们要破解的四个软件有什么特点? 第一个软件有登录账号和密码,不正确的话就有错误提示。 第二个软件有登录账号和密码,不正确的话没有任何提示。
三、正片开始第一题(破解输入账号密码不正确会报错)
方式一,先脱壳再破解
CM(有错误提示)
Ⅰ、首先经典三件套,我们先上PEiD查壳,然后DIE查一下
Ⅱ、这里查到了是upx壳,接下来我们上DIE
Ⅲ、脱壳 这里我们可以先脱壳再分析或者先分析再脱壳丢到OD里面 这里我们用到专门脱壳软件UPX TOOL+去脱一下壳
这里一个是壳的备份文件一个是脱壳软件,我们再看一下是否还有壳
ok,脱完壳我们分析一下exe文件
这里经典登录失败,不过有提示就是好事,我们找一下登录失败的判断语句
这里有一个je跳转登陆失败,这次和上次破解的不太一样,成功判定再失败后面,我们想办法解决一下 这里测试一下jne有没有效果,因为je是条件相等则跳转,jne是条件不相等跳转,先测试一下
ok,这里拿下了,确实我们更改je就能跳转成功,或者修改成jmp无条件跳转也是可以的,这里的思路是这样
方式二
如果我们不会手动脱壳的话,碰到不是upx的壳并且没有工具并且不会手动脱壳的话我们就可以先分析 这里我们丢进OD里面然后搜索00401000看一下 这样可以分析,但是我们修改的代码无法保存,这时就需要一个内存补丁工具Inline Patch生成器1.2
红色是我们要修改文件的路径,蓝色是要修改的地址,粉色是要修改后的结果,就是这样一个工具 这里示范就跳过了
这里不知道是为什么我也是先脱壳才能使用工具进行修改
这里是一个大佬的思路,就是把这里是一个大佬的思路,就是把00401475修改为EB3D90909090,然后会生成一个自命名的exe文件,然后我们随意输入账号密码即可
这里就破解成功了
三、正片开始第二题
CM(登录后,无错误提示) 首先我们还是三件套,查壳、查语言、然后上OD
这里是vc语言,我们也可以看看是不是易语言编写的,既然没有壳,那我们就直接上OD吧。 这里有个思路,可以把它当作一个登录的软件,只有账号密码正确了我们才能使用里面的功能,因此我们有思路了,也就是说无论账号密码是否正确我们直接跳转即可
这里有个想法,就是这个页面是登录成功后才会跳转到,想个办法能不能直接跳或者账号密码错误才跳转呢
这里来一些拓展知识,弹出信息框的函数是MessageBoxA,获取我们输入的账号和密码的函数是GetWindowsTextA,打开文件的函数OpenFile,哪我们需要找这些函数位置 我们可以使用插件中的API断点设置工具中的常用断点设置这里选择函数即可
这里依然可以输入我们的函数名称Ctrl+N设置断点 这里没有弹框在读取文本函数处打断点
这里在输入账号密码也会断点F9放行即可
0xFF25 JMP 后面的四个字节是存放地址的地址 比如想实现循环跳转当前指令,就可以是eb fe,或者e8 fb ff ff ff 这里补充一点,可以直接查询二进制FF25,这个是查询JMP的地址
这里有一个压入0x52010001,因为上面有一个call弹出的是0x52010008,这里可以把push 0x52010001修改为push 0x52010008
成功了,这里将两个窗口id互换了,适用于易语言每个窗口ID语句上面都会有一个PUSH 10001
拓展:CALL有去有回,去远地址执行命令然后返回再次执行,但是JMP有去无回,执行了就不回来了
原文始发于微信公众号(泷羽Sec-朝阳):破解逆向专辑(二)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论