一、学习背景
1、本专辑灵感源于吾爱破解的yyhd大神,一个从零到一的破解系列,也为了补充一下自己的短板
2、使用软件 DIEx64、x64dbg、OD、Immunity Debugger,与原文软件略有不同,因为是比较老版本的文章,这里选择了比较新的主流的软件进行学习
3、软件功能 DIEx64,支持64位和32位数,主要进行查壳,并且die也能查询是什么语言写的并且查什么壳,OD分析的是程序的汇编代码
二、本篇目标案例
我们要破解的四个软件有什么特点? 第一个软件有登录账号和密码,不正确的话就有错误提示。 第二个软件有登录账号和密码,不正确的话没有任何提示。
三、正片开始第一题(破解输入账号密码不正确会报错)
方式一,先脱壳再破解
CM(有错误提示)
Ⅰ、首先经典三件套,我们先上PEiD查壳,然后DIE查一下
Ⅱ、这里查到了是upx壳,接下来我们上DIE
Ⅲ、脱壳 这里我们可以先脱壳再分析或者先分析再脱壳丢到OD里面 这里我们用到专门脱壳软件UPX TOOL+去脱一下壳





方式二
如果我们不会手动脱壳的话,碰到不是upx的壳并且没有工具并且不会手动脱壳的话我们就可以先分析 这里我们丢进OD里面然后搜索00401000看一下 这样可以分析,但是我们修改的代码无法保存,这时就需要一个内存补丁工具Inline Patch生成器1.2




三、正片开始第二题
CM(登录后,无错误提示) 首先我们还是三件套,查壳、查语言、然后上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
拓展:CALL有去有回,去远地址执行命令然后返回再次执行,但是JMP有去无回,执行了就不回来了
原文始发于微信公众号(泷羽Sec-朝阳):破解逆向专辑(二)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-




评论