下面是过程.
===================教程==========================
首先,OD载入(修改版本,没用Strong OD那么BT的反检测哦.)
入口完全符合E格式,直接ALT+M,来到内存.
在Data空段处下断.F8跑起0~.~0
由于是编译模式,所以没几句就到了CLD.其他的可能得多跑几步.哈哈
然后,OD字符查找功能(比较快0~.~0)
如下:
超级字串参考
地址 反汇编 文本字串
00403E65 PUSH 第五代1.0040312F 失败 '关键检测
00403EB9 PUSH 第五代1.00403134 您可能已试图修改过机器码,请勿使用此操作。
00404268 PUSH 第五代1.00403167 靠,破解的哇?'关键检测
004042EE CLD (Initial CPU selection)
然后点第一个地址进去,
如下:
00403E0E /0F85 38000000 JNZ 第五代.00403E4C '可爱的关键跳检测
00403E14 |68 02000080 PUSH 80000002
00403E19 |6A 00 PUSH 0
00403E1B |68 01000000 PUSH 1
00403E20 |6A 00 PUSH 0
00403E22 |6A 00 PUSH 0
00403E24 |6A 00 PUSH 0
00403E26 |68 01000100 PUSH 10001
00403E2B |68 1F000106 PUSH 601001F
00403E30 |68 20000152 PUSH 52010020
00403E35 |68 03000000 PUSH 3
00403E3A |BB 20030000 MOV EBX,320
00403E3F |E8 03050000 CALL 第五代.00404347
00403E44 |83C4 28 ADD ESP,28
00403E47 |E9 30000000 JMP 第五代.00403E7C
00403E4C \6A 00 PUSH 0
00403E4E 6A 00 PUSH 0
00403E50 6A 00 PUSH 0
00403E52 68 01030080 PUSH 80000301
00403E57 6A 00 PUSH 0
00403E59 68 00000000 PUSH 0
00403E5E 68 04000080 PUSH 80000004
00403E63 6A 00 PUSH 0
00403E65 68 2F314000 PUSH 第五代.0040312F ; 失败'返回失败
00403E6A 68 03000000 PUSH 3
00403E6F BB 00030000 MOV EBX,300
00403E74 E8 CE040000 CALL 第五代.00404347
在00403E0E右键选择Nop.或者改成JZ.
我们完成破解检测第一步啦!!!
下面还有个检测呢..很讨厌的验证..
如上,进内存啦
代码如下:
00404244 /0F85 05000000 JNZ 第五代.0040424F '继续关键跳
0040424A |E9 3A000000 JMP 第五代.00404289
0040424F \6A 00 PUSH 0
00404251 6A 00 PUSH 0
00404253 6A 00 PUSH 0
00404255 68 01030080 PUSH 80000301
0040425A 6A 00 PUSH 0
0040425C 68 00000000 PUSH 0
00404261 68 04000080 PUSH 80000004
00404266 6A 00 PUSH 0
00404268 68 67314000 PUSH 第五代.00403167 ; 靠,破解的哇? '返回验证
0040426D 68 03000000 PUSH 3
继续Nop或JZ.完成全部修改.
第2个没事就别改哦.否则不会成功滴0~.~0
主验证也很简单,以后继续破文满天飞!
建议写这个的作者采用外置Dll验证+提取主程序信息.我在以前说过的交互式Dll+主程序验证.
看了您的全文,对于保护程序和保护程序之间一点联系都没。我寒....
看您后面的介绍吓了一大跳呢.
算法贼简单,大家如果看了的话绝对能够被雷到.
到了CLD以后再多跑下面几个Call就知道我说的什么意思啦!
由于您的验证没有变码估计能用通用Lorder器过了....
采用动态的吧.能防破.
坚持外置Dll....................................