【文章标题】: 英汉翻译王2007破解
【文章作者】: 梦湾
【作者邮箱】: *
【作者主页】: *
【作者QQ号】: *
【软件名称】: 英汉翻译王2007
【软件大小】: 1025KB
【下载地址】: http://86516.onlinedown.net/soft/50649.htm
【加壳方式】: 无壳
【保护方式】: 注册码
【编写语言】: Delphi
【使用工具】: OllyICE
【操作平台】: win2k
【软件介绍】: 一款快速高效的英汉翻译软件,需要上网实现在线翻译
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
软件安装后,用PEID查壳,显示“Borland Delphi 6.0 - 7.0”。呵呵,无壳,适合初级菜鸟们练手!
先运行软件,试一试。在点“帮助”->“注册”后,出现“软件注册”对话框。随便输入一串数字,点“注册”,出现错误提示“您好,注册码错误,注册失败!想获取正确注册码,请点[到网站注册]。”
哈哈,软件作者比较友善,居然有错误提示。
那好,用OD载入,在汇编窗口点击右键,选择“Ultra String Regerence”->“FIND ASCII”,在超级字串窗口找到“00487740 |. BA 14784800 mov edx, 00487814 ; 您好,注册码错误,注册失败!\n\n----------------------------------\n\n想获取正确注册码,请点[到网站注册]。”
双击该行,来到这里:
00487740 |. BA 14784800 mov edx, 00487814 ; 您好,注册码错误,注册失败!\n\n----------------------------------\n\n想获取正确注册码,请点[到网站注册]。
向上面找,有:
00487737 |. /EB 41 jmp short 0048777A ; 注册完成,继续处理!!
00487739 |> |6A 10 push 10 ; 跳转来自 00487651
我们找到00487651行
00487651 |. /0F85 E2000000 jnz 00487739 ; 关键跳转;注册不成功,跳走;否则,继续
哈哈,在这里下断,按F9,程序运行,在软件界面上点“帮助”->“注册”后,出现“软件注册”对话框。随便试验码“987987987”,点“注册”,成功断下!
双击寄存器窗口“Z”标志旁边的“0”,数字变为“1”,再按F9,“软件注册”对话框中显示提示“恭喜您,注册成功!”如此看来,软件可以在这里爆破!
将“jnz 00487739”改为“jz 00487739”,估计就成功了。清除该行的断点,开始找注册码喽!
在上面提到的子过程首部(即004875C8)下断,然后一路按F8,直至注册码出现。
以下是该过程汇编代码。
004875C8 /. 55 push ebp
004875C9 |. 8BEC mov ebp, esp
004875CB |. B9 07000000 mov ecx, 7
004875D0 |> 6A 00 /push 0
004875D2 |. 6A 00 |push 0
004875D4 |. 49 |dec ecx
004875D5 |.^ 75 F9 \jnz short 004875D0
004875D7 |. 56 push esi
004875D8 |. 8BF0 mov esi, eax
004875DA |. 33C0 xor eax, eax
004875DC |. 55 push ebp
004875DD |. 68 BF774800 push 004877BF
004875E2 |. 64:FF30 push dword ptr fs:[eax]
004875E5 |. 64:8920 mov dword ptr fs:[eax], esp
004875E8 |. 8D55 F4 lea edx, dword ptr [ebp-C]
004875EB |. 8B86 00030000 mov eax, dword ptr [esi+300]
004875F1 |. E8 C634FCFF call 0044AABC
004875F6 |. 8B45 F4 mov eax, dword ptr [ebp-C]
004875F9 |. 8D55 F8 lea edx, dword ptr [ebp-8]
004875FC |. E8 D30CF8FF call 004082D4
00487601 |. 8B45 F8 mov eax, dword ptr [ebp-8]
00487604 |. 50 push eax
00487605 |. 8D45 E8 lea eax, dword ptr [ebp-18]
00487608 |. E8 7BF9FFFF call 00486F88
0048760D |. 8B45 E8 mov eax, dword ptr [ebp-18]
00487610 |. 8D55 EC lea edx, dword ptr [ebp-14]
00487613 |. E8 BC0CF8FF call 004082D4
00487618 |. 8D45 EC lea eax, dword ptr [ebp-14]
0048761B |. 50 push eax
0048761C |. 8D45 E0 lea eax, dword ptr [ebp-20]
0048761F |. E8 B0F7FFFF call 00486DD4
00487624 |. 8B45 E0 mov eax, dword ptr [ebp-20]
00487627 |. 8D55 E4 lea edx, dword ptr [ebp-1C]
0048762A |. E8 A50CF8FF call 004082D4
0048762F |. 8B55 E4 mov edx, dword ptr [ebp-1C]
00487632 |. 58 pop eax
00487633 |. E8 18CDF7FF call 00404350
00487638 |. 8B45 EC mov eax, dword ptr [ebp-14]
0048763B |. 8D4D F0 lea ecx, dword ptr [ebp-10]
0048763E |. BA D4774800 mov edx, 004877D4 ; t674
00487643 |. E8 50FAFFFF call 00487098 ; 是算法CALL
00487648 |. 8B55 F0 mov edx, dword ptr [ebp-10] ; 真的注册码放在EDX中,7207040570727078717171707173747905747905(我机器上的一串数字,每台机器可能不同)
0048764B |. 58 pop eax ; 假注册码放在EAX中,987987987
0048764C |. E8 43CEF7FF call 00404494
00487651 |. 0F85 E2000000 jnz 00487739
00487657 |. A1 D02B4900 mov eax, dword ptr [492BD0]
0048765C |. 8B00 mov eax, dword ptr [eax]
0048765E |. 8B80 44050000 mov eax, dword ptr [eax+544]
00487664 |. 33D2 xor edx, edx
00487666 |. E8 D1AEFAFF call 0043253C
0048766B |. 8D55 D8 lea edx, dword ptr [ebp-28]
0048766E |. 8B86 00030000 mov eax, dword ptr [esi+300]
00487674 |. E8 4334FCFF call 0044AABC
00487679 |. 8B45 D8 mov eax, dword ptr [ebp-28]
0048767C |. 8D55 DC lea edx, dword ptr [ebp-24]
0048767F |. E8 500CF8FF call 004082D4
00487684 |. 8B55 DC mov edx, dword ptr [ebp-24]
00487687 |. A1 D02B4900 mov eax, dword ptr [492BD0]
0048768C |. 8B00 mov eax, dword ptr [eax]
0048768E |. 8B80 48050000 mov eax, dword ptr [eax+548]
00487694 |. E8 5334FCFF call 0044AAEC
00487699 |. 8D55 D0 lea edx, dword ptr [ebp-30]
0048769C |. A1 042E4900 mov eax, dword ptr [492E04]
004876A1 |. 8B00 mov eax, dword ptr [eax]
004876A3 |. E8 3039FEFF call 0046AFD8
004876A8 |. 8B45 D0 mov eax, dword ptr [ebp-30]
004876AB |. 8D55 D4 lea edx, dword ptr [ebp-2C]
004876AE |. E8 0515F8FF call 00408BB8
004876B3 |. 8B45 D4 mov eax, dword ptr [ebp-2C]
004876B6 |. 8D55 FC lea edx, dword ptr [ebp-4]
004876B9 |. E8 020AF8FF call 004080C0
004876BE |. 8D4D CC lea ecx, dword ptr [ebp-34]
004876C1 |. 33D2 xor edx, edx
004876C3 |. 8B45 FC mov eax, dword ptr [ebp-4]
004876C6 |. E8 5914F8FF call 00408B24
004876CB |. 8B55 CC mov edx, dword ptr [ebp-34]
004876CE |. 8D45 FC lea eax, dword ptr [ebp-4]
004876D1 |. E8 4ACAF7FF call 00404120
004876D6 |. A1 D02B4900 mov eax, dword ptr [492BD0]
004876DB |. 8B00 mov eax, dword ptr [eax]
004876DD |. FFB0 64050000 push dword ptr [eax+564]
004876E3 |. 68 E4774800 push 004877E4 ; \
004876E8 |. FF75 FC push dword ptr [ebp-4]
004876EB |. 68 F0774800 push 004877F0 ; .dll
004876F0 |. 8D45 C8 lea eax, dword ptr [ebp-38]
004876F3 |. BA 04000000 mov edx, 4
004876F8 |. E8 0BCDF7FF call 00404408
004876FD |. 8B55 C8 mov edx, dword ptr [ebp-38]
00487700 |. A1 D02B4900 mov eax, dword ptr [492BD0]
00487705 |. 8B00 mov eax, dword ptr [eax]
00487707 |. 8B80 48050000 mov eax, dword ptr [eax+548]
0048770D |. 8B80 20020000 mov eax, dword ptr [eax+220]
00487713 |. 8B08 mov ecx, dword ptr [eax]
00487715 |. FF51 74 call dword ptr [ecx+74]
00487718 |. 6A 40 push 40
0048771A |. B9 F8774800 mov ecx, 004877F8 ; 提示
0048771F |. BA 00784800 mov edx, 00487800 ; 恭喜您,注册成功!
00487724 |. A1 042E4900 mov eax, dword ptr [492E04]
00487729 |. 8B00 mov eax, dword ptr [eax]
0048772B |. E8 2834FEFF call 0046AB58
00487730 |. 8BC6 mov eax, esi
00487732 |. E8 45FBFDFF call 0046727C
00487737 |. EB 41 jmp short 0048777A
00487739 |> 6A 10 push 10
0048773B |. B9 F8774800 mov ecx, 004877F8 ; 提示
00487740 |. BA 14784800 mov edx, 00487814 ; 您好,注册码错误,注册失败!\n\n----------------------------------\n\n想获取正确注册码,请点[到网站注册]。
00487745 |. A1 042E4900 mov eax, dword ptr [492E04]
0048774A |. 8B00 mov eax, dword ptr [eax]
0048774C |. E8 0734FEFF call 0046AB58
00487751 |. 33D2 xor edx, edx
00487753 |. 8B86 00030000 mov eax, dword ptr [esi+300]
00487759 |. E8 8E33FCFF call 0044AAEC
0048775E |. 8B86 00030000 mov eax, dword ptr [esi+300]
00487764 |. 8B10 mov edx, dword ptr [eax]
00487766 |. FF92 C4000000 call dword ptr [edx+C4]
0048776C |. 8B86 14030000 mov eax, dword ptr [esi+314]
00487772 |. 8B10 mov edx, dword ptr [eax]
00487774 |. FF92 C4000000 call dword ptr [edx+C4]
0048777A |> 33C0 xor eax, eax
0048777C |. 5A pop edx
0048777D |. 59 pop ecx
0048777E |. 59 pop ecx
0048777F |. 64:8910 mov dword ptr fs:[eax], edx
00487782 |. 68 C6774800 push 004877C6
00487787 |> 8D45 C8 lea eax, dword ptr [ebp-38]
0048778A |. BA 04000000 mov edx, 4
0048778F |. E8 18C9F7FF call 004040AC
00487794 |. 8D45 D8 lea eax, dword ptr [ebp-28]
00487797 |. E8 ECC8F7FF call 00404088
0048779C |. 8D45 DC lea eax, dword ptr [ebp-24]
0048779F |. BA 06000000 mov edx, 6
004877A4 |. E8 03C9F7FF call 004040AC
004877A9 |. 8D45 F4 lea eax, dword ptr [ebp-C]
004877AC |. E8 D7C8F7FF call 00404088
004877B1 |. 8D45 F8 lea eax, dword ptr [ebp-8]
004877B4 |. BA 02000000 mov edx, 2
004877B9 |. E8 EEC8F7FF call 004040AC
004877BE \. C3 retn
删除断点,将真注册码复制保存,重新启动软件,输入注册码,万事大吉!
到此,基本结束,以下说一下用KEYMAKE做内存注册机:
中断地址:00487648
中断次数:1
第一字节:8B
指令长度:3
保存注册码寄存器方式:EDX
收工喽!!!
--------------------------------------------------------------------------------
【经验总结】
OllyDbg的寄存器窗口标志是可以任你改的,双击你要改变的标志寄存器就行!
该软件一无壳,二为注册码保护,三用明码比较,绝对适合菜鸟入门练练手!!
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2007年08月21日 10:32:42
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!