云飘飘 发表于 2007-8-21 10:37:08

英汉翻译王2007破解

【文章标题】: 英汉翻译王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:
004875E5|.64:8920       mov   dword ptr fs:, esp
004875E8|.8D55 F4       lea   edx, dword ptr
004875EB|.8B86 00030000 mov   eax, dword ptr
004875F1|.E8 C634FCFF   call    0044AABC
004875F6|.8B45 F4       mov   eax, dword ptr
004875F9|.8D55 F8       lea   edx, dword ptr
004875FC|.E8 D30CF8FF   call    004082D4
00487601|.8B45 F8       mov   eax, dword ptr
00487604|.50            push    eax
00487605|.8D45 E8       lea   eax, dword ptr
00487608|.E8 7BF9FFFF   call    00486F88
0048760D|.8B45 E8       mov   eax, dword ptr
00487610|.8D55 EC       lea   edx, dword ptr
00487613|.E8 BC0CF8FF   call    004082D4
00487618|.8D45 EC       lea   eax, dword ptr
0048761B|.50            push    eax
0048761C|.8D45 E0       lea   eax, dword ptr
0048761F|.E8 B0F7FFFF   call    00486DD4
00487624|.8B45 E0       mov   eax, dword ptr
00487627|.8D55 E4       lea   edx, dword ptr
0048762A|.E8 A50CF8FF   call    004082D4
0048762F|.8B55 E4       mov   edx, dword ptr
00487632|.58            pop   eax
00487633|.E8 18CDF7FF   call    00404350
00487638|.8B45 EC       mov   eax, dword ptr
0048763B|.8D4D F0       lea   ecx, dword ptr
0048763E|.BA D4774800   mov   edx, 004877D4                  ;t674
00487643|.E8 50FAFFFF   call    00487098                         ;是算法CALL
00487648|.8B55 F0       mov   edx, dword ptr           ;真的注册码放在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
0048765C|.8B00          mov   eax, dword ptr
0048765E|.8B80 44050000 mov   eax, dword ptr
00487664|.33D2          xor   edx, edx
00487666|.E8 D1AEFAFF   call    0043253C
0048766B|.8D55 D8       lea   edx, dword ptr
0048766E|.8B86 00030000 mov   eax, dword ptr
00487674|.E8 4334FCFF   call    0044AABC
00487679|.8B45 D8       mov   eax, dword ptr
0048767C|.8D55 DC       lea   edx, dword ptr
0048767F|.E8 500CF8FF   call    004082D4
00487684|.8B55 DC       mov   edx, dword ptr
00487687|.A1 D02B4900   mov   eax, dword ptr
0048768C|.8B00          mov   eax, dword ptr
0048768E|.8B80 48050000 mov   eax, dword ptr
00487694|.E8 5334FCFF   call    0044AAEC
00487699|.8D55 D0       lea   edx, dword ptr
0048769C|.A1 042E4900   mov   eax, dword ptr
004876A1|.8B00          mov   eax, dword ptr
004876A3|.E8 3039FEFF   call    0046AFD8
004876A8|.8B45 D0       mov   eax, dword ptr
004876AB|.8D55 D4       lea   edx, dword ptr
004876AE|.E8 0515F8FF   call    00408BB8
004876B3|.8B45 D4       mov   eax, dword ptr
004876B6|.8D55 FC       lea   edx, dword ptr
004876B9|.E8 020AF8FF   call    004080C0
004876BE|.8D4D CC       lea   ecx, dword ptr
004876C1|.33D2          xor   edx, edx
004876C3|.8B45 FC       mov   eax, dword ptr
004876C6|.E8 5914F8FF   call    00408B24
004876CB|.8B55 CC       mov   edx, dword ptr
004876CE|.8D45 FC       lea   eax, dword ptr
004876D1|.E8 4ACAF7FF   call    00404120
004876D6|.A1 D02B4900   mov   eax, dword ptr
004876DB|.8B00          mov   eax, dword ptr
004876DD|.FFB0 64050000 push    dword ptr
004876E3|.68 E4774800   push    004877E4                         ;\
004876E8|.FF75 FC       push    dword ptr
004876EB|.68 F0774800   push    004877F0                         ;.dll
004876F0|.8D45 C8       lea   eax, dword ptr
004876F3|.BA 04000000   mov   edx, 4
004876F8|.E8 0BCDF7FF   call    00404408
004876FD|.8B55 C8       mov   edx, dword ptr
00487700|.A1 D02B4900   mov   eax, dword ptr
00487705|.8B00          mov   eax, dword ptr
00487707|.8B80 48050000 mov   eax, dword ptr
0048770D|.8B80 20020000 mov   eax, dword ptr
00487713|.8B08          mov   ecx, dword ptr
00487715|.FF51 74       call    dword ptr
00487718|.6A 40         push    40
0048771A|.B9 F8774800   mov   ecx, 004877F8                  ;提示
0048771F|.BA 00784800   mov   edx, 00487800                  ;恭喜您,注册成功!
00487724|.A1 042E4900   mov   eax, dword ptr
00487729|.8B00          mov   eax, dword ptr
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
0048774A|.8B00          mov   eax, dword ptr
0048774C|.E8 0734FEFF   call    0046AB58
00487751|.33D2          xor   edx, edx
00487753|.8B86 00030000 mov   eax, dword ptr
00487759|.E8 8E33FCFF   call    0044AAEC
0048775E|.8B86 00030000 mov   eax, dword ptr
00487764|.8B10          mov   edx, dword ptr
00487766|.FF92 C4000000 call    dword ptr
0048776C|.8B86 14030000 mov   eax, dword ptr
00487772|.8B10          mov   edx, dword ptr
00487774|.FF92 C4000000 call    dword ptr
0048777A|>33C0          xor   eax, eax
0048777C|.5A            pop   edx
0048777D|.59            pop   ecx
0048777E|.59            pop   ecx
0048777F|.64:8910       mov   dword ptr fs:, edx
00487782|.68 C6774800   push    004877C6
00487787|>8D45 C8       lea   eax, dword ptr
0048778A|.BA 04000000   mov   edx, 4
0048778F|.E8 18C9F7FF   call    004040AC
00487794|.8D45 D8       lea   eax, dword ptr
00487797|.E8 ECC8F7FF   call    00404088
0048779C|.8D45 DC       lea   eax, dword ptr
0048779F|.BA 06000000   mov   edx, 6
004877A4|.E8 03C9F7FF   call    004040AC
004877A9|.8D45 F4       lea   eax, dword ptr
004877AC|.E8 D7C8F7FF   call    00404088
004877B1|.8D45 F8       lea   eax, dword ptr
004877B4|.BA 02000000   mov   edx, 2
004877B9|.E8 EEC8F7FF   call    004040AC
004877BE\.C3            retn

删除断点,将真注册码复制保存,重新启动软件,输入注册码,万事大吉!

到此,基本结束,以下说一下用KEYMAKE做内存注册机:

中断地址:0048764B
中断次数:1
第一字节:58
指令长度:1
保存注册码寄存器方式:EDX

收工喽!!!

--------------------------------------------------------------------------------
【经验总结】
OllyDbg的寄存器窗口标志是可以任你改的,双击你要改变的标志寄存器就行!
该软件一无壳,二为注册码保护,三用明码比较,绝对适合菜鸟入门练练手!!

--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2007年08月21日 10:32:42

[ 本帖最后由 云飘飘 于 2007-8-21 15:54 编辑 ]

gongsui 发表于 2007-8-21 11:15:54

【双击寄存器窗口“Z”标志旁边的“0”,数字变为“1”】
这里的Z是什么东西?如何理解
我试了一下,改了后保存是没有改变的

云飘飘 发表于 2007-8-21 12:07:44

"Z"是零标志,只有在调试中有效!保存——————没有用。你可以 将“jnz   00487739”改为“jz   00487739”试试!

Nisy 发表于 2007-8-21 12:43:55

在OD中修改标志位Z的目的就是看下这个跳转后的效果 然后做出相应的推断和修改~

楼主的文章不错推荐在文章中使用代码 以使数据对齐。

Nisy 发表于 2007-8-21 12:45:30

原帖由 gongsui 于 2007-8-21 11:15 发表 https://www.chinapyg.com/images/common/back.gif
【双击寄存器窗口“Z”标志旁边的“0”,数字变为“1”】
这里的Z是什么东西?如何理解
我试了一下,改了后保存是没有改变的

在OD中修改标志位Z的目的就是看下这个跳转后的效果 然后做出相应的推断和修改~

楼主的文章不错推荐在文章中使用代码 以使数据对齐。

gongsui 发表于 2007-8-21 13:00:32

感谢两位解答,又学习了

jianwenbin00 发表于 2007-8-21 13:32:17

该软软件破后,有重启验证。望指点,我还是没入门的人呢!

云飘飘 发表于 2007-8-21 14:29:07

都追出注册码了,还怕啥呢?/:018

云飘飘 发表于 2007-8-21 14:35:23

如何使用,请赐教!
文章在看雪上,很正常的!这里好像是不一样。

gongsui 发表于 2007-8-21 14:43:19

原帖由 云飘飘 于 2007-8-21 14:35 发表 https://www.chinapyg.com/images/common/back.gif
如何使用,请赐教!
文章在看雪上,很正常的!这里好像是不一样。
编辑--插入代码
或者     后面这个code前加/

[ 本帖最后由 gongsui 于 2007-8-21 14:44 编辑 ]
页: [1] 2
查看完整版本: 英汉翻译王2007破解