软件介绍:
软件名叫鹦鹉螺网络助手,大小为708KB。可在下列网址download.
http://newhua.infosail.com/down/netranger170c.exe
鹦鹉螺网络助手是一个集成了用于TCP/IP协议的多种网络工具的应用软件。她基于Windows Socket2.0版
本,功能包括:Ping;Host lookup(主机查询);Finger(帐号查询);同步本地主机时钟的Time(网络时钟); WhoIs(域名查询);TraceRoute(路由跟踪);ISPPinger(以一定时间间隔持续ping同一台主机);QoD服务;
增强的快速拨号;支持多帐号的电邮检查等等。其他特性包括多功能的托盘图标,在线检查软件升级,获 得本机IP地址,将主机查询结果存入本地HOSTS文件等等。本软件适用于安装了TCP/IP协议的Windows
9x操作系统(包括Windows 95,97,98和Windows ME)。本软件需要有Microsoft Winsock 2.0或更高版本才 能正常工作。Windows
98及以上版本在安装时即已带有,而Windows 95用户可以从微软公司的网站下载有
关的升级包,也可以从鹦鹉螺工作室的主页下载一个拷贝
我用的工具:softICE 4.05.可在下列网址download
http://mud.sz.jsinfo.net/per/aaron/files/debuggers/win/si405w9x.zip
知识要求: 1。具备基本的汇编知识。
2。懂得 softICE 的基本操作。
所用方法: 1.找注册失败点。
2。找关键跳跃点。
3。找关键CALL.
4。找出注册码。
I。找注册失败点。
运行软件NautiNW,注册软件。
1. 输入名字和注册码:
用户名:uhlan
注册码:78787878 (从 Error_Free 大哥处学来的,他可是我的启蒙老师哦!^^)
2.按 Ctrl-D 进入 softICE.
3.设断 BPX HMEMCPY 按 F5 返回 NautiNW.
4.按回车即被拦截, 不停地按F12,当按了21下时出现了注册失败的窗口。
5。按确定后,按F5 回到 NautiNW,按前面的步骤再来一次。
6。不停地按F12,不过这次是按了20下,就停住。按 F6, 再用 F9设一个断点。
7。不停地按F10,按到一定时候,会看到
0177:00417AC2 CALL 00437436
8。 当我们再按一次时,失败的窗口就跳出来了。于是,这个CALL就是我们要找的失败点了。
II.找关键跳跃点。
9。再重新注册一次。按回车即被拦截. 由于刚才用 F9设了一个断点,现在就直接来到这里。
10。按 F10, 直到看到下列语句。
....
0177:00417A54 TEST EAX,EAX (EAX=0)
0177:00417A56 JZ 00417AB4 (一跳就失败)
...
11.在 JZ 00417AB4 处 打入 rfl+z
12.再按F10,这时程序就不再跳跃了。
13.按F5退出softICE,这时就会出现注册成功的画面。
(从这里我们可以推测到,EAX 是一个标志位,当EAX=0时,表明输入注册码不正确,当 EAX 不等于 0时,表明输入注册码正确。所以,下一步,我们要找的就是那个CALL
负责在EAX设标志)。
III.找关键CALL
14. 再重新注册一次。按回车即被拦截.
15. 按 F10, 直到
....
0177:00417A4F CALL 00417C20
....
0177:00417A54 TEST EAX,EAX (EAX=0)
0177:00417A56 JZ 00417AB4 (一跳就失败)
...
过了那个CALL后,我们可以看到 EAX已经被清零了。于是,可以
十分肯定地说,CALL 00417C20 就是我们要找的关键 CALL.
注册码的对比就在那个 CALL 里面。
IV. 找出注册码。
16。在 0177:00417A4F CALL 00417C20 按F9设断。再注册一次,
17。 在 0177:00417A4F CALL 00417C20 被拦截后,按F8进入这个CALL.
19. 不停地按F10,并留意 EAX的变化,看什么时候变0.
20. 终于,在这里,
.....
0177:00417CE3 XOR EAX,EAX
.....
( 程序运行到这里把 EAX 清零后,就会跳出这个CALL,回到主程序,然后,就是对比EAX的值,再着
失败窗口就出现了。
我们可以想到,程序肯定有一个地方对比注册码,然后再决定来不来到这里来吧 EAX 清零。)
21。再注册一次。
22。在 0177:00417A4F CALL 00417C20 被拦截后,按F8进入这个CALL
23,不停地按F10,不过这次是看那里的 JUMP 会跳过前面清零的步骤。
24。皇天不负苦心人!,终于,我们可以在这里找到线索。
.....
0177:00417C87 CALL 004232A0
0177:00417C8C ADD ESP,0C
0177:00417C8F MOV BYTE PTR [ESP+20],00
0177:00417C94 TEST EAX,EAX
(检验标志位, EAX=1 则失败。 EAX=0 则成功 )
0177:00417C96 LEA ECX,[ESP+28]
0177:00417C9A JNZ 00417CC9
(跳则失败,不跳则成功)
....
(从这里,可以推断, EAX在这里变成另一个标志位的寄存器,而 CALL 004232A0 是设置这个新标志的关键CALL)
25. 于是,再重新注册一次。
26。 来到 0177:00417C87 CALL 004232A0 时,按 F8 进入。
27。 以下是我抄下来的 CALL 004232A0 内的程序。
PUSH
EBP
MOV
EBP,ESP
PUSH
EDI
PUSH
ESI
PUSH
EBX
MOV
ECX,[EBP+10]
JECXZ
004232D1
MOV
EBX,ECX
MOV
EDI,[EBP+08]
MOV
ESI,EDI
XOR
EAX,EAX
REPNZ
SCASB
NEG
ECX
ADD
ECX,EBX
MOV
EDI,ESI
MOV
ESI,[EBP+0C]
REPZ
CMPSB
MOV
AL,[ESI-01] (下 d esi-01 的命令, 就可看到 78787878, 正是我们输入的号码)
XOR
ECX,ECX
CMP
AL,[EDI-01] (下 d edi-01 的命令, 就可看到 xxxxxxxx, 正是要找的注册码,还不快抄下?)
JA 004232CF
JZ 004232D1
( 不 jump 就失败)
DEC
ECX
DEC
ECX
NOT
ECX
MOV
EAX,ECX ( 将 EAX 的标志设为1)
POP
EBX
POP
ESI
POP
EDI
LEAVE
RET
28. 用找到的注册码再重新注册。这次是真的成功了!!^^
- 标 题:鹦鹉螺网络助手破解 (5千字)
- 作 者:uhlan
- 时 间:2001-1-19 17:32:05
- 链 接:http://bbs.pediy.com