里诺进销存管理软件V3.50算法分析
【文章标题】: 里诺进销存管理软件V3.50算法分析【文章作者】: Smecta
【作者邮箱】: showsimida@vip.qq.com
【软件名称】: 里诺进销存管理软件V3.50
【下载地址】: 自己搜索下载
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
我的工具包没有看见了
我就没有查壳直接来破解
不过载入OD就发现
这个软件没有壳,
然后我们直接来搜索他的字符串找到“注册失败,请检查您的注册名和注册码!”
然后我们首先来在上面找到他的首段下断点然后F9跑起来,然后输入我们的假码,
断下然后F8,然后找到他的关键CALL,F7跟进
00734948 .57 push edi
00734949 .8945 FC mov dword ptr ss:,eax
0073494C .33C0 xor eax,eax
0073494E .55 push ebp ;首段
0073494F .68 8D4A7300 push jxc.00734A8D
00734954 .64:FF30 push dword ptr fs:
00734957 .64:8920 mov dword ptr fs:,esp
0073495A .8B45 FC mov eax,dword ptr ss:
0073495D .E8 A6020000 call jxc.00734C08 ;关键CALL F7进去
00734962 .84C0 test al,al
00734964 .0F84 DB000000 je jxc.00734A45 ;这里应该就是爆破点关键的跳
0073496A .33C0 xor eax,eax
0073496C .55 push ebp
0073496D .68 294A7300 push jxc.00734A29
00734972 .64:FF30 push dword ptr fs:
00734975 .64:8920 mov dword ptr fs:,esp
00734978 .B2 01 mov dl,1
0073497A .A1 AC454500 mov eax,dword ptr ds:
0073497F .E8 4CFED1FF call jxc.004547D0
00734984 .8BD8 mov ebx,eax
00734986 .BA 02000080 mov edx,80000002
0073498B .8BC3 mov eax,ebx
0073498D .E8 1AFFD1FF call jxc.004548AC
00734992 .B1 01 mov cl,1
00734994 .BA A44A7300 mov edx,jxc.00734AA4 ;Software\zy\JXC
00734999 .8BC3 mov eax,ebx
0073499B .E8 5000D2FF call jxc.004549F0
007349A0 .8D55 F4 lea edx,dword ptr ss:
007349A3 .8B45 FC mov eax,dword ptr ss:
007349A6 .8B80 04030000 mov eax,dword ptr ds:
007349AC .E8 D706D6FF call jxc.00495088
007349B1 .8B45 F4 mov eax,dword ptr ss:
007349B4 .8D55 F8 lea edx,dword ptr ss:
007349B7 .E8 987FCDFF call jxc.0040C954
007349BC .8B4D F8 mov ecx,dword ptr ss:
007349BF .BA BC4A7300 mov edx,jxc.00734ABC ;Name
007349C4 .8BC3 mov eax,ebx
007349C6 .E8 2D07D2FF call jxc.004550F8
007349CB .8D55 EC lea edx,dword ptr ss:
007349CE .8B45 FC mov eax,dword ptr ss:
007349D1 .8B80 08030000 mov eax,dword ptr ds:
007349D7 .E8 AC06D6FF call jxc.00495088
007349DC .8B45 EC mov eax,dword ptr ss:
007349DF .8D55 F0 lea edx,dword ptr ss:
007349E2 .E8 6D7FCDFF call jxc.0040C954
007349E7 .8B4D F0 mov ecx,dword ptr ss:
007349EA .BA CC4A7300 mov edx,jxc.00734ACC ;Pass
007349EF .8BC3 mov eax,ebx
007349F1 .E8 0207D2FF call jxc.004550F8
007349F6 .8BC3 mov eax,ebx
007349F8 .E8 07F9CCFF call jxc.00404304
007349FD .6A 40 push 40
007349FF .68 D44A7300 push jxc.00734AD4 ;软件注册
00734A04 .68 E04A7300 push jxc.00734AE0 ;注册成功,本程序所有功能限制下次启动时将被自动解除,欢迎您成为我们正式版本用户!
00734A09 .8B45 FC mov eax,dword ptr ss:
00734A0C .E8 6B71D6FF call jxc.0049BB7C
00734A11 .50 push eax ; |hOwner
00734A12 .E8 6D40CDFF call <jmp.&user32.MessageBoxA> ; \MessageBoxA
00734A17 .8B45 FC mov eax,dword ptr ss:
00734A1A .E8 E5E4D7FF call jxc.004B2F04
00734A1F .33C0 xor eax,eax
00734A21 .5A pop edx
00734A22 .59 pop ecx
00734A23 .59 pop ecx
00734A24 .64:8910 mov dword ptr fs:,edx
00734A27 .EB 36 jmp short jxc.00734A5F
00734A29 .^ E9 B6FDCCFF jmp jxc.004047E4
00734A2E .8B45 FC mov eax,dword ptr ss:
00734A31 .E8 CEE4D7FF call jxc.004B2F04
00734A36 .8B45 FC mov eax,dword ptr ss:
00734A39 .E8 16010000 call jxc.00734B54
00734A3E .E8 CD01CDFF call jxc.00404C10
00734A43 .EB 1A jmp short jxc.00734A5F
00734A45 >6A 40 push 40
00734A47 .68 D44A7300 push jxc.00734AD4 ;软件注册
00734A4C .68 304B7300 push jxc.00734B30 ;注册失败,请检查您的注册名和注册码!
00734A51 .8B45 FC mov eax,dword ptr ss:
00734A54 .E8 2371D6FF call jxc.0049BB7C
得出我们的真码:
00734C08/$55 push ebp
00734C09|.8BEC mov ebp,esp
00734C0B|.B9 04000000 mov ecx,4
00734C10|>6A 00 /push 0
00734C12|.6A 00 |push 0
00734C14|.49 |dec ecx
00734C15|.^ 75 F9 \jnz short jxc.00734C10
00734C17|.51 push ecx ;F4运行到这里,继续F8
00734C18|.53 push ebx
00734C19|.56 push esi
00734C1A|.8BF0 mov esi,eax
00734C1C|.33C0 xor eax,eax
00734C1E|.55 push ebp
00734C1F|.68 1D4D7300 push jxc.00734D1D
00734C24|.64:FF30 push dword ptr fs:
00734C27|.64:8920 mov dword ptr fs:,esp
00734C2A|.8D55 F8 lea edx,
00734C2D|.8B86 08030000 mov eax,dword ptr ds:
00734C33|.E8 5004D6FF call jxc.00495088
00734C38|.8B45 F8 mov eax, ;这里就出现了我们的假码
00734C3B|.8D55 FC lea edx,
00734C3E|.E8 117DCDFF call jxc.0040C954
00734C43|.8B45 FC mov eax,
00734C46|.50 push eax
00734C47|.8D55 EC lea edx,
00734C4A|.8B86 04030000 mov eax,dword ptr ds:
00734C50|.E8 3304D6FF call jxc.00495088
00734C55|.8B45 EC mov eax, ;我们的机器码出现
00734C58|.8D55 F0 lea edx,
00734C5B|.E8 F47CCDFF call jxc.0040C954
00734C60|.8B55 F0 mov edx,
00734C63|.8D4D F4 lea ecx,
00734C66|.8BC6 mov eax,esi
00734C68|.E8 FF000000 call jxc.00734D6C
00734C6D|.8B55 F4 mov edx, ;真码得出
然后我们来制作他的注册机
继续用相同的办法来找到他的
真码所在的地方~~
然后走到这里:
00734C66|.8BC6 mov eax,esi
00734C68|.E8 FF000000 call jxc.00734D6C
00734C6D|.8B55 F4 mov edx, ;真码所在位置
00734C70|.58 pop eax ;03002F58
我们可以看到FPU里面得出的注册码是指向EDX的
然后我们来打开KEYMAKE
找到的们的主程序
中断的地址就是:00734C70
次数为:1次
第一字节:58
指令长度:1
不会计算指令长度,指令长度就是所有的字节的个数除2
58就是两个除2就是1
00734C6D|.8B55 F4 mov edx,
如果是这个的话呢,那么就是8B55 F46除2=3了
教程到此结束!
--------------------------------------------------------------------------------
【经验总结】
很多人不会计算指令长度,指令长度就是所有的字节的个数除2
58就是两个除2就是1
如果是这个的话呢,那么就是8B55 F46除2=3了
就得了了我们的指令长度~~~~
--------------------------------------------------------------------------------
【版权声明】: 本文原创于吾爱丶破解(Smecta), 转载请注明作者并保持文章的完整, 谢谢!
2011年05月14日 20:11:48
沙发我的。穷死了。
大家给钱给钱,
给分给分
没看到算法分析啊 {:1_918:}和标题有出入 郁闷,你的算法分析在哪呢?你干脆把标题改成xx破文及keymake制作 ...同意Smoke大大的话~您的算法分析撒~我看的是KEYMAKER制作吖~ 晕死,这叫算法分析,这不明显是个破文吗? 呵呵不管怎么说 谢谢了 这个相信吾爱中80%都能追出注册码 感谢.不知道暗桩咋去?
页:
[1]
2