讲师过去 QQ1632876255
今天学习的是破解软件把别人的软件变成你自己的 还可以+注册机
爆破+制作文件补丁
破解工具 OllyDBG PEiD_0[1][1].94 keymake 1[1][1].73
破解对象 系统优化大师
好了 我们先查下壳
ASPack 2.12 -> Alexey Solodovnikov
我们前面讲过它的脱法 看我操作
好了 我们再查下壳 无壳 编写语言Borland Delphi 6.0 - 7.0
我们先看看未注册时有什么限制
看到了吧 无法清理恶意软件 注册时有错误提示 注册失败 注册用户请重试 如有问题请直接和作者联系
OK我们开始爆破 用OD载入
按SHIFT+F9跳过异常
右键查找超级字符串 查找注册失败 可以看到如下代码
00548FB9 |. 8B95 64FFFFFF MOV EDX,DWORD PTR SS:[EBP-9C]
00548FBF |. 58 POP EAX
00548FC0 |. E8 F3BEEBFF CALL 1.00404EB8
00548FC5 |. 0F85 EE000000 JNZ 1.005490B9
00548FCB |. 8D95 4CFFFFFF LEA EDX,DWORD PTR SS:[EBP-B4]
00548FD1 |. 8B83 04030000 MOV EAX,DWORD PTR DS:[EBX+304]
00548FD7 |. E8 606DF0FF CALL 1.0044FD3C
00548FDC |. 8B8D 4CFFFFFF MOV ECX,DWORD PTR SS:[EBP-B4]
00548FE2 |. A1 58745D00 MOV EAX,DWORD PTR DS:[5D7458]
00548FE7 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
00548FE9 |. BA D4915400 MOV EDX,1.005491D4 ; yhdsger
00548FEE |. E8 6DD9F3FF CALL 1.00486960
00548FF3 |. 8D85 48FFFFFF LEA EAX,DWORD PTR SS:[EBP-B8]
00548FF9 |. B9 E4915400 MOV ECX,1.005491E4 ; \5y5ten.sys
00548FFE |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
00549001 |. E8 BABDEBFF CALL 1.00404DC0
00549006 |. 8B8D 48FFFFFF MOV ECX,DWORD PTR SS:[EBP-B8]
0054900C |. B2 01 MOV DL,1
0054900E |. A1 58514800 MOV EAX,DWORD PTR DS:[485158]
00549013 |. E8 F0C1F3FF CALL 1.00485208
00549018 |. 8BF0 MOV ESI,EAX
0054901A |. 8D95 44FFFFFF LEA EDX,DWORD PTR SS:[EBP-BC]
00549020 |. 8B83 FC020000 MOV EAX,DWORD PTR DS:[EBX+2FC]
00549026 |. E8 116DF0FF CALL 1.0044FD3C
0054902B |. 8B85 44FFFFFF MOV EAX,DWORD PTR SS:[EBP-BC]
00549031 |. 50 PUSH EAX
00549032 |. B9 F8915400 MOV ECX,1.005491F8 ; dd
00549037 |. BA 04925400 MOV EDX,1.00549204 ; syssetup
0054903C |. 8BC6 MOV EAX,ESI
0054903E |. 8B38 MOV EDI,DWORD PTR DS:[EAX]
00549040 |. FF57 04 CALL DWORD PTR DS:[EDI+4]
00549043 |. 8D95 40FFFFFF LEA EDX,DWORD PTR SS:[EBP-C0]
00549049 |. 8B83 04030000 MOV EAX,DWORD PTR DS:[EBX+304]
0054904F |. E8 E86CF0FF CALL 1.0044FD3C
00549054 |. 8B85 40FFFFFF MOV EAX,DWORD PTR SS:[EBP-C0]
0054905A |. 50 PUSH EAX
0054905B |. B9 18925400 MOV ECX,1.00549218 ; zc
00549060 |. BA 04925400 MOV EDX,1.00549204 ; syssetup
00549065 |. 8BC6 MOV EAX,ESI
00549067 |. 8B30 MOV ESI,DWORD PTR DS:[EAX]
00549069 |. FF56 04 CALL DWORD PTR DS:[ESI+4]
0054906C |. 8D85 3CFFFFFF LEA EAX,DWORD PTR SS:[EBP-C4]
00549072 |. B9 E4915400 MOV ECX,1.005491E4 ; \5y5ten.sys
00549077 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0054907A |. E8 41BDEBFF CALL 1.00404DC0
0054907F |. 8B85 3CFFFFFF MOV EAX,DWORD PTR SS:[EBP-C4]
00549085 |. BA 02000000 MOV EDX,2
0054908A |. E8 A10DECFF CALL 1.00409E30
0054908F |. B8 24925400 MOV EAX,1.00549224 ; 软件注册成功!谢谢注册!
00549094 |. E8 03F9EFFF CALL 1.0044899C
00549099 |. A1 5C735D00 MOV EAX,DWORD PTR DS:[5D735C]
0054909E |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
005490A0 |. 8B80 0C050000 MOV EAX,DWORD PTR DS:[EAX+50C]
005490A6 |. BA 48925400 MOV EDX,1.00549248 ; 软件已注册
005490AB |. E8 BC6CF0FF CALL 1.0044FD6C
005490B0 |. 8BC3 MOV EAX,EBX
005490B2 |. E8 F145F2FF CALL 1.0046D6A8
005490B7 |. EB 24 JMP SHORT 1.005490DD
005490B9 |> 33D2 XOR EDX,EDX
005490BB |. 8B83 04030000 MOV EAX,DWORD PTR DS:[EBX+304]
005490C1 |. E8 A66CF0FF CALL 1.0044FD6C
005490C6 |. 33D2 XOR EDX,EDX
005490C8 |. 8B83 FC020000 MOV EAX,DWORD PTR DS:[EBX+2FC]
005490CE |. E8 996CF0FF CALL 1.0044FD6C
005490D3 |. B8 5C925400 MOV EAX,1.0054925C ; 注册失败,注册用户请重试!\n如有问题,请直接与作者联系!
005490D8 |. E8 BFF8EFFF CALL 1.0044899C
005490DD |> 33C0 XOR EAX,EAX
00548FC5 |. 0F85 EE000000 JNZ 1.005490B9
这是一个关键跳转 JNZ不相等就跳 我们该成 jz相等就跳 也就是说当我们输入正确的注册码时它会认为不真确 我们输入错误的注册码时它认为是真确的 呵呵我们一般是不会猜到注册码的
然后 保存修改 就好了 我们看看 效果
OK成功了 我们来制作文件补丁 这很简单的 看 我操作
这里原始的文件就是它原来的我们没有修该过的 已破解的当然就是我们破解的了
上面的信息大家随便填
好了 这就制作好了 我们看看 看到了吧 成功了
其实文件补丁的原理就是把我们修该的地方给原文件也该掉 这样就成功了