难度进步增加,这次破解,用原先的快速找到断点已无法解决,还需要稍微对代码进行查看
第一次尝试,花了点时间没有解决,找大佬的帖子,才找到关键节点,下次找不到关键节点的时候,也需要看代码分析了
本次使用到的断点方式
中文搜索引擎-智能搜索
CTRL+G,直接断关键节点
本次用到的工具
PEiD_boxed (查壳)
IDR (Interactive Delphi Reconstructor) (寻找关键地址) https://down.52pojie.cn/Tools/Disassemblers/IDR%20(Interactive%20Delphi%20Reconstructor).rar 解压码www.52pojie.cn
UPX Unpacker (UPX脱壳工具) https://down.52pojie.cn/Tools/Unpackers/UPX%20Unpacker.zip 解压码www.52pojie.cn
本次使用到的汇编语言分析
call 调用进程
mov 赋值 (mov a,0x1 意思为a=1)
test 测试
je 、jnz 判断
jmp 跳过
retn 返回
来看程序,一打开就报错
image.png (10.75 KB, 下载次数: 0)
下载附件
1
2025-1-24 14:14 上传
还带UPX壳
image.png (15.71 KB, 下载次数: 0)
下载附件
2
2025-1-24 14:15 上传
直接扔到UPX的脱壳工具脱壳,脱壳成功
image.png (92.66 KB, 下载次数: 0)
下载附件
3
2025-1-24 14:17 上传
再将程序拖入查壳,upx壳已脱,用Delphi写的,后面需要用到IDR
image.png (15.93 KB, 下载次数: 0)
下载附件
7
2025-1-24 14:24 上传
把程序拖入OD,一眼就看到了报错信息
image.png (140.64 KB, 下载次数: 0)
下载附件
4
2025-1-24 14:20 上传
将je改成jmp就能跳过报错,保存程序,并运行
image.png (133.4 KB, 下载次数: 0)
下载附件
5
2025-1-24 14:21 上传
报错信息没有了,点击about,显示激活,并且OK键还是灰色的。
image.png (21.29 KB, 下载次数: 0)
下载附件
6
2025-1-24 14:22 上传
由于软件是Delphi写的,将保存后的程序拖入IDR找关键断点
image.png (110.19 KB, 下载次数: 0)
下载附件
8
2025-1-24 15:26 上传
继续将程序拖入OD
在可能的节点都下断
00437BD8、00437D1C、00437DFC、
00437E70、00437E7C、00437E88、00437E94,00437D1C(这几个其实不需要下断,因为这里面都没有判断语句相关的),如果下断并到这里停下时,取消断点
在下断的时候,我们发现所有的编辑事件都指向一个call 00437D1C
ctrl+G 输入地址,F2断点
image.png (130.8 KB, 下载次数: 0)
下载附件
9
2025-1-24 15:28 上传
断点都下完后,F9运行软件,点击about-register,输入01时,在00437D1C断下
image.png (133.76 KB, 下载次数: 0)
下载附件
10
2025-1-24 15:36 上传
先查看代码,发现所有的判断跳过均指向一个call,
image.png (148.17 KB, 下载次数: 0)
下载附件
11
2025-1-24 15:40 上传
按F8运行该call
image.png (131.75 KB, 下载次数: 0)
下载附件
12
2025-1-24 15:42 上传
将关键判断nop掉,保存程序,以后看到test做比较,还有mov给某个字段赋值,需要多注意一下,说不准就是坑
1737706938901.jpg (151.68 KB, 下载次数: 0)
下载附件
13
2025-1-24 16:22 上传
运行程序,程序破解成功
image.png (41.57 KB, 下载次数: 0)
下载附件
14
2025-1-24 16:24 上传