老文章档案 · 2003 年

自由英语XP 1.0.脱壳

网络学院 · 脱壳教程 · 2003-09-02 · 作者:人气: · 出处:赢政天下整理收藏)

newlaos破解手记

***************************************************

软件名称:自由英语XP 1.0.0 Buid 778:

下载地址: http://www.ynxx.com/estudy

大 小:4.04MB

加密方式:Aspack 2.12 + Lock98 1.00.28 + 注册码

使用工具:TRW2000 1.22汉化注册版,RegMon,GUW32 1.0 Beta8,

PE-scan3.31,ollydbg1.09汉化版

pj日期:2003年2月22日

***************************************************

软件说明:本软件不但为学习者提供了一个能够实现英语复读、听力对比、写作练习等功能的完全虚拟的学习平台, 而且还具备电脑录音、电脑复读、英语听写等多种语言处理功能,使学习者通过自由地听、写、读、背等练习,全面 提高听、说、读、写、译的能力,并解决了困扰中国人英语学习中"聋哑英语"的难题,从而使学习者找到一种真正适 合自己的英语学习方法。

破解方法:

1、软件脱壳,用PE-scan3.31侦到加了aspack2.12的壳,随即脱掉,运行一下可正常运行。再用FI2.5r查看发现脱掉ASPACK2.12壳后 的程序还有一个LOCK98 1.00.28的壳,这个壳用GUW32 1.0beta8很快搞定,至此程序完全脱壳,FI2.5r显示为 Borland Delphi程序。

2、用trw2000 1.22动态跟踪,按7下F12(按8下,就出现注册号错误提示),很多就来下面这段地区:

......

......

0050E578 . 55 PUSH EBP

0050E579 . 8BEC MOV EBP,ESP

0050E57B . 33C9 XOR ECX,ECX

0050E57D . 51 PUSH ECX

0050E57E . 51 PUSH ECX

0050E57F . 51 PUSH ECX

0050E580 . 51 PUSH ECX

0050E581 . 51 PUSH ECX

0050E582 . 53 PUSH EBX

0050E583 . 56 PUSH ESI

0050E584 . 8BF2 MOV ESI,EDX

0050E586 . 8BD8 MOV EBX,EAX

0050E588 . 33C0 XOR EAX,EAX

0050E58A . 55 PUSH EBP

0050E58B . 68 A2E65000 PUSH ESTUDY.0050E6A2

0050E590 . 64:FF30 PUSH DWORD PTR FS:[EAX]

0050E593 . 64:8920 MOV DWORD PTR FS:[EAX],ESP

0050E596 . 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]

0050E599 . 8B83 20030000 MOV EAX,DWORD PTR DS:[EBX+320]

0050E59F . E8 6C33F4FF CALL ESTUDY.00451910

0050E5A4 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]

0050E5A7 . 50 PUSH EAX <--下D eax可以看见45678

0050E5A8 . 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]

0050E5AB . 8B83 24030000 MOV EAX,DWORD PTR DS:[EBX+324]

0050E5B1 . E8 5A33F4FF CALL ESTUDY.00451910

0050E5B6 . 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]

0050E5B9 . 50 PUSH EAX <--下D eax可以看见56789

0050E5BA . 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]

0050E5BD . 8B83 1C030000 MOV EAX,DWORD PTR DS:[EBX+31C]

0050E5C3 . E8 4833F4FF CALL ESTUDY.00451910

0050E5C8 . 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]

0050E5CB . 50 PUSH EAX <--下D eax可以看见34567

0050E5CC . 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]

0050E5CF . 8B83 18030000 MOV EAX,DWORD PTR DS:[EBX+318]

0050E5D5 . E8 3633F4FF CALL ESTUDY.00451910

0050E5DA . 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]

0050E5DD . 50 PUSH EAX <--下D eax可以看见23456

0050E5DE . 8D55 EC LEA EDX,DWORD PTR SS:[EBP-14]

0050E5E1 . 8B83 14030000 MOV EAX,DWORD PTR DS:[EBX+314]

0050E5E7 . E8 2433F4FF CALL ESTUDY.00451910

0050E5EC . 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14] <--下D eax可以看见12345

0050E5EF . 5A POP EDX <--输入的所有数字都出来,说明来到关键地方了

0050E5F0 . 59 POP ECX

0050E5F1 . E8 06820100 CALL ESTUDY.005267FC <--输入的注册号经过这个CALL一段加密处理,至于

0050E5F6 . 8B15 98245300 MOV EDX,DWORD PTR DS:[532498] 什么原理我也不知道?因为可以不用管!

0050E5FC . 8902 MOV DWORD PTR DS:[EDX],EAX

0050E5FE . A1 98245300 MOV EAX,DWORD PTR DS:[532498]

0050E603 . 8138 611E0000 CMP DWORD PTR DS:[EAX],1E61 <--关键比较1到了,正确则是"60天限时版"

0050E609 . 74 1A JE SHORT ESTUDY.0050E625

0050E60B . A1 98245300 MOV EAX,DWORD PTR DS:[532498]

0050E610 8138 B8220000 CMP DWORD PTR DS:[EAX],22B8 <--关键比较2到了,正确则是"正是版"了

0050E616 74 0D JE SHORT ESTUDY.0050E625

0050E618 A1 98245300 MOV EAX,DWORD PTR DS:[532498]

0050E61D 8138 0F270000 CMP DWORD PTR DS:[EAX],270F <--关键比较3到了,正确则是"友情注册版"

0050E623 . 75 4A JNZ SHORT ESTUDY.0050E66F

0050E625 > A1 6C2A5300 MOV EAX,DWORD PTR DS:[532A6C]

0050E62A . 8B00 MOV EAX,DWORD PTR DS:[EAX]

0050E62C . 8BD6 MOV EDX,ESI

0050E62E . E8 2D070000 CALL ESTUDY.0050ED60

0050E633 . 6A 00 PUSH 0

0050E635 . B9 B0E65000 MOV ECX,ESTUDY.0050E6B0

0050E63A . BA B8E65000 MOV EDX,ESTUDY.0050E6B8

0050E63F . A1 3C285300 MOV EAX,DWORD PTR DS:[53283C]

0050E644 . 8B00 MOV EAX,DWORD PTR DS:[EAX]

0050E646 . E8 F544F6FF CALL ESTUDY.00472B40 <--过去就出现注册错误提示框!

0050E64B . 8BC3 MOV EAX,EBX

0050E64D . E8 220CF6FF CALL ESTUDY.0046F274

0050E652 . 6A 00 PUSH 0

0050E654 . 6A 00 PUSH 0

0050E656 . 68 E3070000 PUSH 7E3

0050E65B . A1 18275300 MOV EAX,DWORD PTR DS:[532718]

0050E660 . 8B00 MOV EAX,DWORD PTR DS:[EAX]

0050E662 . E8 BD99F4FF CALL ESTUDY.00458024

0050E667 . 50 PUSH EAX

0050E668 . E8 3797EFFF CALL

0050E66D . EB 18 JMP SHORT ESTUDY.0050E687

0050E66F > 6A 00 PUSH 0

0050E671 . B9 B0E65000 MOV ECX,ESTUDY.0050E6B0

0050E676 . BA 10E75000 MOV EDX,ESTUDY.0050E710

0050E67B . A1 3C285300 MOV EAX,DWORD PTR DS:[53283C]

0050E680 . 8B00 MOV EAX,DWORD PTR DS:[EAX]

0050E682 . E8 B944F6FF CALL ESTUDY.00472B40

0050E687 > 33C0 XOR EAX,EAX

0050E689 . 5A POP EDX

0050E68A . 59 POP ECX

0050E68B . 59 POP ECX

0050E68C . 64:8910 MOV DWORD PTR FS:[EAX],EDX

0050E68F . 68 A9E65000 PUSH ESTUDY.0050E6A9

0050E694 > 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]

0050E697 . BA 05000000 MOV EDX,5

0050E69C . E8 FB64EFFF CALL ESTUDY.00404B9C

0050E6A1 . C3 RETN

3、静态分析,用w32dasm黄金版中文版会出错,只好用ollydbg1.09中文版,载入文件,在0050E603处下按F2下断,三个关键比较,都是将EAX所指内存地址中的2字节数据与后面的数(分别是1E61,22B8,270F)进行比较,正确则注册成功。并把注册表HKEY_LOCALMACHINE\SoftWare\ynxx\EStudy\RegInfo="Unregistered Version"改为相应的注册信息。

4、开始想用最简单的爆破,即将0050E609 JE 0050E625中的74 1A 改为75 1A,程序运行,注册时,可以显示注册成功,但由于EAX所指内存地址中的2字节数据不是对的,所以注册表中仍是"Unregistered Version",等于没有注册。

想来想去,即然是与三个常数(1E61,22B8,270F)比较,那干脆就把它的值传到EAX所指内存地址中去,那么就不正程序所要的吗?所以就把0050E603 8138611E0000 CMP DWORD PTR DS:[EAX],1E61 改为MOV DWORD DS:[EAX],1E61 就可以了。

在ollydbg的命令行输入:a 0050E603,MOV DWORD DS:[EAX],1E61 就程序会帮你改好,得到相应的机器码改为C700611E0000,最后爆破,打开ULTRAEDIT做相应修改,就可以了。这样得出的是60天限时版,所以,直接改为MOV DWORD DS:[EAX],22B8 (机器码为C700B8220000),就可以得到完全注册版了。

5、注册成功后,程序会把注册表HKEY_LOCALMACHINE\SoftWare\ynxx\EStudy\RegInfo="Unregistered Version"改为相应的注册信息,导出就可以做成万能解密了。先安装,再导入这个注册表信息,就成注册版了。

(出处:赢政天下整理收藏)

相关文章:

相关软件:

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史