好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 zjh16529 于 2019-6-6 18:54 编辑
我看到https://www.52pojie.cn/thread-850185-1-1.html这个帖子写到破解周易起名软件没有完全成功,所以我也试了一下,结果也没有完全破解。只解锁了大部分功能。
发这个帖子主要目的是分享一下通过IDA辅助破解的基本方法与通过特征码制作文件补丁的方法。
环境:WinXP_52Pojie专用版
工具:OllyDbg,IDA pro 6.8 x86, 通用特征码查找替换补丁工具 v0.6 (这些工具都附带在WinXP_52Pojie的破解工具包内)
查壳和脱壳的步骤见https://www.52pojie.cn/thread-850185-1-1.html,这个软件加的壳是Aspack,破解工具包内有脱壳机。
脱壳后打开软件,是这个样子:
1
可以看见窗口上有提示(试用版),那么可以猜到大概率存在重启验证,我们就先搜索“(试用版)“,共有6处,全部下断点,然后按F9运行,程序中断,那么向上就可以找到验证的call。
2
3
找到关键call后,点进去可以看到关键call的具体实现,记下关键call的首地址:00407954,有时候关键call可能很复杂,这时就可以使用IDA将关键call反编译为C语言,这样可以加速分析。
现在我们打开IDA,点击New,选择我们要分析的文件,步骤如下:
4
5
IDA载入后等待一段时间,直到它分析完毕。
IDA分析完毕后,按快捷键“g”,输入刚才记下的首地址:00407954,点击OK,然后按F5反编译,就可以将关键call反编译为C代码。
6
这时对应到ollydbg的反汇编,C代码中调用的sub_4084F1对应到反汇编就是call 004084F1,很容易找到,如图:
7
这时一般的想法就是进入函数sub_4084F1,修改004084F1为retn 0x8(因为这个sub_4084F1有两个参数,要保持堆栈平衡,所以需要ret 0x8)。但是如果存在很多个与函数sub_4084F1代码相同的函数,就需要手动一一修改,这样太麻烦,这时就可以使用补丁制作工具完成修改任务。
我们先在ollydbg中进入函数sub_4084F1,看看里面是什么样子:
8
现在开始用特征码制作文件补丁,先打开通用特征码查找替换补丁工具 v0.6 ,选择设置补丁内容
9
进入后配置如图
10
我们在ollydbg中选中函数sub_4084F1(地址004084F1)开始几行代码的二进制编码为特征码,右键,选择二进制,二进制复制,如图
11
将复制到的二进制代码粘贴到补丁制作工具中的待搜索的特征码文本框内:
12
在ollydbg中将第一行代码改为ret 0x8,记下对应的二进制代码及其长度,二进制代码为 C2 08 00,长度为3
13
,然后将刚才复制的待搜索的特征码前3个字节改为C2 08 00,然后粘贴到待替换的字节中:
14
点击添加,保存
15
保存后点击创建补丁到目标文件所在目录。
16
这样补丁就制作完成,运行补丁,可以生成补丁后的文件。运行结果,
17
上面替换了11处,如果手工替换就太麻烦了。
打开补丁后的文件,可以看到是注册版了,不过依旧有些功能限制,因为还有暗桩没有被发现。
18
破解到这里就结束了,其他限制大概也可以用这种方式去除。
最后,从这个软件的购买方式可以判断注册码与机器码无关,注册次数的限制应该是通过联网验证实现的。
本文关于IDA的使用只是最基本的介绍,要深入了解请参考《IDA Pro权威指南》。
附上《IDA Pro权威指南》及未脱壳的软件供各位练手:
《IDA Pro权威指南》:https://www.lanzouj.com/i319ytg
周易起名软件:https://www.lanzouj.com/i31a0ba
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|