yhq 破解实战录

01 --- Teleport Pro (pro12.exe) 破解法 !!!

1.Username: 填入 YanHuaQi (因为要6个字母以上)
Company: CSMC
注册码: 87654321 (先乱填)

2.Ctrl-D 切入S-ICE...

3.bpx hmemcpy

4.按F5切回Teleport Pro...然後按下OK键...

5.S-ICE拦下後...BD * 把拦中断的功能关掉
按几次F12...跳回Teleport Pro领空...

6.然後一直按F10....直到下面:

7.XXX:0040E3C6 JZ 0040E48B
XXX:0040E3CC LEA EDI,[ESI+000000D5]
XXX:0040E3D2 MOV EAX,[EDI]
XXX:0040E3D4 PUSH EAX
XXX:0040E3D5 CALL 0041BAD0
^^^^^^^^^^^^^
这是算注册码的CALL

XXX:0040E3DA ADD ESP,04
XXX:0040E3DD CMP EAX,EBP
^^^^^^^^^^^
要害 !!! 比较核心...

XXX:0040E3DF JNZ 0040E497
^^^^^^^^^^^^
若EAX和EBP不相同...就跳到0040E497...那就GAME OVER啦...

所以执行到XXX:40E3DD那行时...看一下EAX和EBP...

嘿嘿...

EBP:05397FB1....好眼熟ㄚ...呵呵...就是87654321的16进位值...

EAX:50CCD6BA....当然就是注册码罗...换算成10进位...

答案就是: 1355601594

再次整理一遍:

username: YanHuaQi
company: CSMC
password: 1355601594

===============================================================================
yhq 破解实战录 02 --- OM21_EN.ZIP 破解法 !!!

以下将此软体简称OM...

1.Username: 填入 yhq
注册码: 87654321 (先乱填)

2.Ctrl-D 切入S-ICE...

3.bpx hmemcpy

4.按F5切回OM...然後按下OK键...

5.S-ICE拦下後...BD * 把拦中断的功能关掉

按几次F12...跳回OM领空...

6.然後一直按F10....直到下面:

7.XXX:0040D860 LEA EBX,[EDI+64]
XXX:0040D863 LEA ESI,[EDI+68]
XXX:0040D866 PUSH EBX
XXX:0040D867 MOV ECX,EDI
XXX:0040D869 CALL 0040D480
^^^^^^^^^^^^^
这是算注册码的CALL

XXX:0040D86E CMP EAX,[ESI]
^^^^^^^^^^^^^
要害 !!! 比较核心...

XXX:0040D870 JZ 0040D884
^^^^^^^^^^^
若EAX和[ESI]相同...就跳到0040D884...那就注册成功啦...

所以执行到XXX:0040D86E那行时...看一下EAX和[ESI]...

嘿嘿...

下d esi指令

XXX:0066F1F4 B1 7F 39 05

反过来看: 05397FB1

好眼熟ㄚ...呵呵...就是87654321的16进位值...

而EAX:0032F06....当然就是注册码罗...换算成10进位...

答案就是: 208646

再次整理一遍:

username: yhq
password: 208646

===============================================================================
yhq 破解实战录 03 --- Netterm 4.10 破解法 !!!

1.Username: 填入 yhq
注册码: 87654321 (先乱填)

2.Ctrl-D 切入S-ICE...

3.bpx hmemcpy

4.按F5切回Netterm...然後按下OK键...

5.S-ICE拦下後...BD * 把拦中断的功能关掉
按几次F12...跳回Netterm领空...

6.然後一直按F10....直到下面:

7.XXX:00423E4A LEA EAX,[EBP+FFFFFDBC]
XXX:00423E50 PUSH EAX
XXX:00423E51 MOV EAX,[0044814C]
XXX:00423E56 PUSH EAX
XXX:00423E57 CALL 00441826
^^^^^^^^^^^^^
此CALL会将我们带到ISIVIDEO.DLL...

就是Netterm的运算注册码和比对的核心...

XXX:00423E5C MOV [EBP+FFFFFDB8],EAX
XXX:00423E62 CMP DWORD PTR [EBP+FFFFFDB8],00
XXX:00423E69 JZ 00423EC3
^^^^^^^^^^^
跳到00423EC3...就GAME OVER...

弟破过好几套软体...

都是使用EAX当作一锅旗标值...

也就是最後以EAX的值来决定注册成功或失败...

所以由上段程式可以知道:

当EAX=0时...注册失败...

当EAX=1时...注册成功...(为啥知道是1勒...因为我trace过嘛...)

所以我们就追入XXX:00423E57那个CALL(核心)看看...

8.追入後...一直按F10...直到如下:

(这里已是ISIVIDEO.DLL的领空...而不是NETTERM.EXE的喔)

而且此处亦是比对核心最後的返回地方...

XXX:004748B1 JNZ 004748C6
XXX:004748B7 MOV EAX,00000001
XXX:004748BC JMP 004748CD
XXX:004748C1 JMP 004748CD
XXX:004748C6 XOR EAX,EAX
^^^^^^^^^^^
就是这里将EAX的值改成0...使我们注册失败..

所以执行到这一行时看看EAX为多少...嗯...就是前面说的1嘛...

所以将此行改成 NOP
NOP

或是MOV AL,1

就破解啦...

别忘了先下code on指令...将机械码计起来...

待会要改ISIVIDEO.DLL...

XXX:004748C8 JMP 004748CD
XXX:004748CD POP EDI
XXX:004748CE POP ESI
XXX:004748CF POP EBX
XXX:004748D0 LEAVE
XXX:004748D1 RET 0010

再次整理一遍:

改ISIVIDEO.DLL

FIND: E9 0C 00 00 00 E9 07 00 00 00 33 C0 E9 00 00 00 00 5F 5E 5B
EDIT: -- -- -- -- -- -- -- -- -- -- 90 90 -- -- -- -- -- -- -- --

--:表不用修改之处...

改完後...

username: 随你高兴...想填啥就填啥
password: 随你高兴...想填啥就填啥

===============================================================================
yhq 破解实战录 04 --- Master Converter v1.73 破解法 !!!

这是一套各种单位换算的软体...
以下称此软体为MC...呵呵...别乱想喔...

1.注册码: 1234567890123 (此处先乱填...但必须填满13个字...
为啥我知道13个字...因为我有先填过87654321八个字
去trace...结果程式会先看看注册码是否为13个字...
是的话才会去比较)

2.Ctrl-D 切入S-ICE...

3.下bpx hmemcpy指令...

4.按F5切回MC...然後按下OK键...

5.S-ICE拦下後...BD * 把拦中断的功能关掉

按几次F12...跳回MC领空...

6.然後一直按F10....直到下面:

XXX:00444CBB MOV EAX,[004509C4]
XXX:00444CC0 CALL 004414FC
^^^^^^^^^^^^^
算注册码及比对核心的CALL...

XXX:00444CC5 MOV [004509C0],AL
XXX:00444CCA CMP BYTE PTR [004509C0],00

由AL当旗标值...来决定注册成功与否...

XXX:00444CD1 JZ 00444CF1
^^^^^^^^^^^
XXX:00444CD3 PUSH 40

跳到00444CF1就GAME OVER啦...

追到XXX:00444CD1时...

若将IP值改成00444CD3...即让JZ 00444CF1失效...

会出现注册成功的讯息...

所以推断要害必在XXX:00444CC0那锅CALL...

所以在那行设断...重新注册一次...并追进去...

7.追入後...一直按F10...直到如下:

XXX:00403423 MOV EBX,EAX

XXX:00403425 MOV ESI,EDX
^^^^^^^^^^^
XXX:00403427 MOV EDI,ECX
^^^^^^^^^^^
追到上面那两行先停一下...

看看ESI和EDI各指向哪些资料...

下d esi指令
d edi指令

嘿嘿...真幸运...

可看到ESI指向1234567890123...刚刚输入的注册码...

嘿嘿...爽...事情成功了一半...

接著下bpm XXXX:YYYYYYYY (那锅ESI指向的位址)...

XXX:00403429 MOV EAX,EDI
XXX:0040342B CALL 004033FC

8.接著就看神对我们有没有关爱的眼神啦...

呵呵...果然神爱世人...:P

一直下 G 指令(不要按太快)...直到下面:

XXX:004035ED MOV ECX,[ESI];将真正的注册码由ESI指向处放到ECX
XXX:004035EF MOV EBX,[EDI];将输入的注册码由ESI指向处放到EBX
XXX:004035F1 CMP ECX,EBX ;比对核心...哈哈哈...Bingo !!!
XXX:004035F3 JNZ 0040364D ;不相同则跳跃到0040364D
XXX:004035F5 DEC EDX

执行到XXX:004035F1那行时...

下d esi指令...可看到真正的注册码...123740*707773

下d edi指令...可看到输入的注册码...1234567890123

当然也可将XXX:004035F3 JNZ 0040364D 这锅指令改成NOP...

不过注册码已找出...就不用费事啦...

9.再次整理一遍:

Master Converter v1.73

注册码: 123740*707773

===============================================================================
yhq 破解实战录 05 --- Video Clip MPEG 1.7 破解法 !!!

以下称此软体为VCM...

1.由於此软体没有输入注册码的地方...故猜想可能是key-file的保护...

2.Ctrl-D 切入S-ICE...

3.下bpx getprivateprofileint指令...

4.按F5切回Win95...然後执行VCM...

5.S-ICE拦下後...BD * 把拦中断的功能关掉

按几次F12...跳回VCM领空...

6.然後一直按F10....直到下面:

XXX:2C2C MOV AX,08E5
XXX:2C2F PUSH AX
XXX:2C30 PUSH 0030FFFF
XXX:2C26 CALL 0C57:A8FE
^^^^^^^^^^^^^^
执行到此CALL...就GAME OVER啦...

所以往上看...看哪里可以避开此CALL...

哇勒...好几处勒...而且都一样...

想必是检查好几次...故找最前面的那锅...如下:

7.

XXX:2BEB PUSH EAX
XXX:2BED CALL 0CA7:D618 ;此CALL为比较核心段...
主程式呼叫这锅CALL好几次..
XXX:2BF2 OR AX,AX ;以AX当旗标值...嘿嘿...很眼熟吧...
XXX:2BF4 JNZ 2C3B ;当AX不为0时就跳到2C3B...
就避开2C26那锅CALL啦...

8.所以再2BED那行设断...再重新执行一次...
拦下後...追进去...直到如下:

XXX:D61C MOV BX,[BP+0A]
XXX:D61F LES SI,[BP+06]
XXX:D622 MOV AX,ES:[SI]
XXX:D625 AND AX,BX
XXX:D627 CMP AX,BX ;嘿嘿...比较核心罗...
XXX:D629 JNZ D634 ;比较结果若不同...就跳到D634
XXX:D62B MOV AX,0001 ;我们的目的...使AX不为0 !!!
XXX:D62E POP SI
XXX:D62F LEAVE
XXX:D630 RETF 0006
XXX:D633 NOP
XXX:D634 XOR AX,AX ;嘿嘿...程式要我们死翘翘的地方...
XXX:D636 POP SI
XXX:D637 LEAVE
XXX:D638 RETF 0006

所以勒...就把 XXX:D629 JNZ D634 这行改成两锅 NOP 就破啦...

别忘了先下 code on 的指令将机械码记起来喔...待会要改原程式...

9.再次整理一遍:

Video Clip MPEG 1.7

改 VCLPMPG.EXE

FIND: C4 76 06 26 8B 04 23 C3 3B C3 75 09 B8 01 00 5E C9
EDIT: -- -- -- -- -- -- -- -- -- -- 90 90 -- -- -- -- --

--: 表不用修改之处...

===============================================================================
yhq 破解实战录 06 --- WinTex95 v2.01 破解法 !!!

以下称此软体为WT...

1.输入name: yhq
code: 87654321 (先乱写)

2.Ctrl-D 切入S-ICE...

3.下bpx hmemcpy指令...

4.按F5切回WT...按OK...

5.S-ICE拦下後...BD * 把拦中断的功能关掉

按几次F12...跳回WT领空...

6.然後一直按F10....直到下面:

XXXX:0044D3F4 MOV EAX,[EBP-08]
XXXX:0044D3F7 MOV CX,[0044D628]
XXXX:0044D3FE MOV DL,1
XXXX:0044D400 CALL 00431810 ;执行到此CALL...就GAME OVER啦...
XXXX:0044D405 JMP 0044D4F6

所以往上看...看哪里可以避开此CALL...

如下:

7.

XXXX:0044D33C CALL 0040373C ;要害CALL !!!
XXXX:0044D341 JZ 0044D40A ;跳跃点

8.所以在0044D33C那行设断...再重新执行一次...
拦下後...追进去...直到如下:

XXXX:0040373F MOV ESI,EAX
XXXX:00403741 MOV EDI,EDX
XXXX:00403743 CMP EAX,EDX ;嘿嘿...比较核心罗...
XXXX:00403745 JZ 004037DA ;若相同则跳到004037DA

所以勒...执行到XXXX:00403743 CMP EAX,EDX时...

下 d esi 指令...看到真正的注册码: 4694
d edi 指令...看到输入的注册码: 87654321

9.嗯...注册码算出来啦...重新BD *...按F5...跳回WT重新注册一次...
哈哈哈...成功啦吗???...别高兴的太早...
关掉WT...重新执行WT...哇勒[email protected]#$%...还是有延迟画面...
而且看萤幕最上面还有 UNREGISERED !!!
这个死德国佬...还布有暗桩[email protected]#$%.....

10.关掉WT...用 S-ICE 的 Loader...载入Wtex95.exe...
先按F8一次...再一直按F10...直到如下...

XXXX:0046BD0D MOV EBX,EAX
XXXX:0046BD0F MOV EAX,EDI
XXXX:0046BD11 CALL 00402C10 ;这锅CALL就是延迟画面啦...

所以往上看...看哪里可以避开此CALL...

如下:

11.

XXXX:0046BCE3 MOV EBX,00000001
XXXX:0046BCE8 MOV EAX,[0046E6B4]
XXXX:0046BCED CMP BYTE PTR [EAX+000001D0],00
嘿嘿...[EAX+000001D0]就是旗标值罗...
XXXX:0046BCF4 JNZ 0046BD16 ;若不相同就跳过延迟画面...

12.所以我们先 BD *
在下 BPM XXXX:YYYYYYYY (就是EAX+000001D0那锅位址)...
看看程式是哪里在改这锅旗标值...
按F5...关掉WT...重新执行WT...
拦下後...多按几次 G...直到如下...

13.

XXXX:0044D77D MOV EBX,EAX
XXXX:0044D77F MOV BYTE PTR [EBX+000001D0],00 ;嘿嘿...抓到罗...
XXXX:0044D786 MOV EAX,EBX ;暗桩一...
XXXX:0044D788 CALL 0044D1A4 ;暗桩二...
XXXX:0044D78D CMP BYTE PTR [EBX+000001D0],00 ;返回前最後比对处...
XXXX:0044D794 JZ 0044D7A0 ;若是0...就跳到失败的地方罗...

先别急著改XXXX:0044D77F MOV BYTE PTR [EBX+000001D0],00...
因为程式後面还有暗桩...还会将[EBX+000001D0]这锅位址填0...
所以到0044D78D CMP BYTE PTR [EBX+000001D0],00这行才改...
下 CODE ON 指令...此指令共 7 BYTES...
所以可以改成MOV BYTE PTR [EBX+000001D0],01...
而0044D794 JZ 0044D7A0...改成两锅 NOP...

哈哈哈...

这一次真的破啦...死德国佬...

14.重新整理一次:

改 Wtex95.exe

FIND: 80 BB D0 01 00 00 00 74 0A
EDIT: C6 83 D0 01 00 00 01 90 90

name: yhq
code: 4694

===============================================================================
yhq 破解实战录 07 --- PrimaSoft AutoFTP v1.0 破解法 !!!

以下称此软体为AF...(不是GF啦...我快想疯罗!!!)

1.输入name: yhq
code: 87654321 (先乱写)

2.Ctrl-D 切入S-ICE...

3.下bpx hmemcpy指令...

4.按F5切回AF...按OK...

5.S-ICE拦下後...BD * 把拦中断的功能关掉

按几次F12...跳回AF领空...

6.然後一直按F10....直到下面:

XXXX:0045F87E MOV EAX,[EBP-08]
XXXX:0045F881 POP EDX
XXXX:0045F882 CALL 0045C6A8 ;要害CALL!!!
XXXX:0045F887 TEST AL,AL ;嘿嘿...眼熟吧!!!
XXXX:0045F889 JZ 0045F8C0 ;跳到0045F8C0就GAME OVER啦!!!
XXXX:0045F88B MOV BYTE PTR [EBX+000001C4],01

你要是跳到0045F8C0...要按F10一阵子才会看到失败窗...
我为啥知道这锅跳跃点是关键...
其实你要是跳到0045F8C0...接下来会有一堆RET(返回)指令...
所以大概猜想离"死期"不远罗...
而且这锅跳跃离XXXX:0045F889的下一锅指令
XXXX:0045F88B MOV BYTE PTR [EBX+000001C4],01有一点距离...
所以大胆判断...这是关键跳跃点...
所以在 XXXX:0045F882 CALL 0045C6A8 设断...重新TRACE一次...

7.进入XXXX:0045F882 CALL 0045C6A8那锅CALL後...一直按F8...
期间你会看到程式运算注册码的过程...
在这因为弟没时间KEY-IN...故略过...
仅列出比对核心要害处...
一直按F8...直到如下:

XXXX:0040396B MOV ESI,EAX
XXXX:0040396D MOV EDI,EDX
XXXX:0040396F CMP EAX,EDX ;命中要害!!!比对核心罗!!!
XXXX:00403971 JZ 00403A06 ;若相同则跳到00403A06

执行到XXXX:0040396F CMP EAX,EDX

下 D EDI 指令: 看到输入的注册码 87654321
下 D ESI 指令: 看到真正的注册码 987654820-968

8.再次整理一遍:

软体名: PrimaSoft AutoFTP v1.0
姓 名: yhq
注册码: 987654820-968

===============================================================================
yhq 破解实战录 08 --- HyperSnap-DX v3.00 破解法 !!!

以下称此软体为HS...

1.执行HS...出现延迟画面...

2.Ctrl-D 切入S-ICE...

3.下bpx lockmytask指令...

4.按F5切回HS...按OK...

5.S-ICE拦下後...BD * 把拦中断的功能关掉

按几次F12...跳回HS领空(HSDX主程式模组)...

6.然後一直按F10....直到下面:

XXXX:0040F6FE PUSH 0046CC44
XXXX:0040F703 PUSH ECX
XXXX:0040F704 PUSH EAX
XXXX:0040F705 CALL [00490D54] ;用F10带过此行...
XXXX:0040F70B TEST EDI,EDI 延迟画面就跑出来啦...
XXXX:0040F70D JZ 0040F745

所以往上看...看哪里可以避开此CALL...

如下:

7.

XXXX:0040F685 CALL 00426C10
XXXX:0040F68A CMP DWORD PTR [0048547C],00 ;比对旗标值
XXXX:0040F691 PUSH EBX
XXXX:0040F692 PUSH ESI
XXXX:0040F693 PUSH EDI
XXXX:0040F694 JNZ 0040F745 ;若[0048547C]之值等於00...
那就死定罗!!!

8.所以在0040F685那行设断...再重新执行一次...
拦下後...追进去...

但是...发觉...好像没有更动[0048547C]的指令出现...
不信邪...
下BPM XXXX:YYYYYYYY (即[0048547C]的位址)...
按下G...结果还是在XXXX:0040F691 PUSH EBX拦下...
表示此行的上一行XXXX:0040F68A CMP DWORD PTR [0048547C],00
有读写此位址...当然嘛...要比较...当然要去读咩...
除此之外就没读写那锅位址的指令...
我偏不信邪...BPM XXXX:YYYYYYYY仍然开著...
重新载入执行...哇勒...还是在老地方拦下...
但是重头载入执行...你会发觉
XXXX:0040F68A CMP DWORD PTR [0048547C],00被栏两次(检查两次)
可见没有其他的指令读写那锅位址...
算了...那就不管啦...

执行到XXXX:0040F694 JNZ 0040F745
下CODE ON...记下机械码...
然後下A...
改成JMP 0040F745
嗯...强迫跳过啦...:p

9.这一套破的蛮丑的...
还有Unregistered version的标记...
不管啦...用UltraEdit改掉就好啦...
刚试了一下(2000年)...功能都没问题...
应该ok啦...收工!!!

10.重新整理一次:

软体名: HyperSnap-DX v3.00

改 HSDX.EXE

FIND: 83 3D 7C 54 48 00 00 75 2A 8D 45 0C 50
EDIT: -- -- -- -- -- -- -- EB -- -- -- -- --

--: 表不用修改之处。

===============================================================================
yhq 破解实战录 09 --- 汉X通 v3.0 破解法 !!!

以下称此软体为XXX...

1.执行XXX...并且到输入序号的画面...输入87654321(乱填)

此套软体是依据注册码(Registered No,)(每套应该不同)
and一些其他因素(ex:时间)来算出序号(Serial No.)...
因为我第二次trace时...序号又跟上次不同(若我没记错)
所以hacker版上的序号无效...

2.Ctrl-D 切入S-ICE...

3.下bpx hmemcpy指令...

4.按F5切回XXX...按OK...

5.S-ICE拦下後...BD * 把拦中断的功能关掉

按几次F12...跳回XXX领空(XXX主程式模组)...

6.然後一直按F10....直到下面:

XXXX:3A49 PUSH 5EDA
XXXX:3A4C PUSH 00
XXXX:3A4E CALL USER!MESSAGEBOX ;这是WIN95中USER模组的API...
用来显示讯息的...
用F10带过此CALL...
错误讯息就跑出来啦...

所以往上看...看哪里可以避开此CALL...

如下:

7.

XXXX:39E5 REPNZ SCASB
XXXX:39E7 NOT CX
XXXX:39E9 SUB DI,CX
XXXX:39EB REPZ CMPSB ;要害!!!比对核心...
XXXX:39ED JZ 39F4 ;若相同则跳到39F4...即避开"死亡的界线"

所以在XXXX:39EB REPZ CMPSB设断...重新执行XXX...
拦下後...
下 D SI 会看到输入的注册码...87654321
下 D DI 会看到正确的注册码...XXXXXXXXX(每锅人不同)

===============================================================================
yhq 破解实战录 10 --- The Bologna Pony Express v2.25 破解法 !!!

以下称此软体为BPE...

1.先设定好BPE...上线...执行BPE...并且抓图抓至50个...
就会出现限制的视窗啦!!!

然後离线...省钱钱咩...

再试著抓一次(按BPE的Find Now键)...限制视窗就跑出来啦...
先按下ok...关掉限制视窗...

2.Ctrl-D 切入S-ICE...

3.下bpx postmessage指令...
我为啥知道这个限制视窗是用postmessage这个API来执行显示的...
因为我有试嘛...试很多开窗...显示讯息的API...才试出来的...

4.按F5切回BPE...按Find Now键...

5.S-ICE在此拦下:

USER!POSTMESSAGE
XXXX:0001 MOV BX,SP
XXXX:0003 CMP WORD PTR SS:[BX+0C],00

6.然後 BD * 把中断点先暂停...
一直按F12....跳回BPE领空(BPE主程式模组)...
此时...小心慢慢按F12...一直到跳出S-ICE并显示限制视窗为止...
按下OK键...又回到S-ICE...
可看到如下的程式码:

XXXX:0043424D CMP WORD PTR [0044D050],19
XXXX:00434255 JLE 0043426A ;若[0044D050]的资料小於等於19H
则跳到0043426A
XXXX:00434257 CALL 00446A70 ;限制视窗...死翘翘的地方...
XXXX:0043425C MOV WORD PTR [0044D030],FFFF ;S-ICE在此拦下...
XXXX:00434265 JMP 0043482D
XXXX:0043426A MOV EDX,[EBP+FFFFFF3C]

大胆推测一下...在XXXX:00434255 JLE 0043426A设断...
重新TRACE一次...拦下後...R IP...将IP改成0043426A...
嘿嘿...限制视窗不见了...而且程式处於连线状态...
嘿嘿...成功了吗???...还得真正连线试试看...

PS:其实这里的19H(等於10进位的25)...
你要是自己往下追...你就会知道...为啥啦...
25*2=50...自己追追看...:P

7.先用工具(EX:ULTRAEDIT)将XXXX:00434255 JLE 0043426A
的机械码改成JMP 0043426A...
然後连线抓图...嘿嘿...发生啥事...
只抓了一锅图就出现限制视窗...
所以还有暗桩...

先按OK...关掉限制视窗...CTRL-D 切回S-ICE...
一样用BPX POSTMESSAGE...抓图...拦下...
一直F12到BPE的领空...换一直F10...
你会回到XXXX:0043424D CMP WORD PTR [0044D050],19
然後就要抓改[0044D050]的要害罗...
BPM XXXX:YYYYYYYY ([0044D050]的位址)...
然後慢慢下G指令...
直到如下:

XXXX:0044426E MOVSX EAX,WORD PTR [0045D050]
XXXX:00444275 MOV [EBO+FFFFFF08],EAX

这两行使[EBO+FFFFFF08]=[0045D050]

XXXX:0044427B MOV DWORD PTR [EBP-04],0000004D
XXXX:00444282 MOV ECX,[EBP+FFFFFF08]

将[EBP+FFFFFF08]的值搬到ECX...

XXXX:00444288 ADD ECX,01 ;嘿嘿...将ECX加一...
XXXX:0044428B MOV [EBP+FFFFFF08],ECX ;加一後在存回去

所以我们得转移目标啦...
BPM AAAA:BBBBBBBB ([EBP+FFFFFF08]的位址)

8.设断後...开始下G指令...慢慢来喔...
直到如下:

XXXX:00444428 CMP DWORD PTR [EBP+FFFFFF08],31 ;嘿嘿...比对核心罗...
31H=49(10进位)...
XXXX:0044442F JLE 0044444D ;若是[EBP+FFFFFF08]中的资料
比31H小就跳到0044444D...
XXXX:00444431 MOV DWORD PTR [EBP-04],00000053
XXXX:00444438 CALL 00446A70 ;死亡的界线 !!!
XXXX:0044443D MOV DWORD PTR [EBP-04],00000054
XXXX:00444444 NOV WORD PTR [EBP-04],FFFF
XXXX:0044444D MOV DWORD PTR [EBP-04],00000056

所以再将XXXX:0044442F JLE 0044444D改成JMP 0044444D
就收工啦 !!!

9.再次整理一遍:

软体名: The Bologna Pony Express v2.25
修改码: 改 BolognaPonyT.exe
FIND: 7E 13 E8 14 28 01 00
EDIT: EB -- -- -- -- -- --

FIND: 7E 1C C7 45 FC 53 00 00 00
EDIT: EB -- -- -- -- -- -- -- --

--: 表不用修改之处

===============================================================================
yhq 破解实战录 11 --- Internet Utilities 97 v2.0.24 破解法 !!!

以下称此软体为IU97...

1.执行 IU97...
他会劈头就问你是否购买,选 Buy Now,再选 Starfish Operator...
在 Unlocking Code 的地方填入 1234567890 ...
一定要填十个字,理由待会说...

2.Ctrl-D 切入S-ICE...

3.下bpx hmemcpy指令(老步数)...

4.按F5切回IU97...按ok键...

5.S-ICE在此拦下:

KERNEL!HMEMCPY
XXXX:9E30 PUSH BP
XXXX:9E31 MOV BP,SP

在Win95的KERNEL系统模组中的HMEMCPY这个API拦下...

6.然後 BD * 把中断点先暂停...
一直按F12....跳回IU97领空(IU97主程式模组)...
此时返回的是IU97中的SIU模组...
可看到如下的程式码:

XXXX:00402431 CALL [USER32!GETDLGITEMTEXTA];这个USER32!GETDLGITEMTEXTA
系统模组API是用来读取字串的
所以也可用 bpx GETDLGITEMTEXTA
来拦下,不一定要用 bpx hmemcpy
XXXX:00402437 MOV ECX,FFFFFFFF
XXXX:0040243C SUB EAX,EAX
XXXX:0040243E REPNZ SCASB
XXXX:00402440 NOT ECX
XXXX:00402442 DEC ECX
XXXX:00402443 CMP ECX,0A ;这就是我说为何要设十个字注册码
XXXX:00402446 JZ 0040247B ;若是十个字,就跳到0040247B
XXXX:00402448 LEA EAX,[ESP+08] ;若执行到此,就完啦!

7.按F10继续往下追...

XXXX:004024D2 CALL [USER32!MESSAGEBOXA];这个API是用来显示注册码错误的
XXXX:004024D8 MOV EAX,FFFFFFFF
XXXX:004024DD POP EDI

8.所以我们往前找,看看那里可以让我们跳离开这里...

XXXX:00402492 PUSH 004180D0
XXXX:00402497 PUSH 004180E0
XXXX:0040249C CALL 00415250 ;要害CALL!!!
XXXX:004024A1 ADD ESP,08
XXXX:004024A4 TEST EAX,EAX ;嘿嘿,眼熟吧
XXXX:004024A6 JNZ 004024B3 ;若是跳到004024B3就死定啦
XXXX:004024A8 XOR EAX,EAX ;生命之泉,使EAX=0
XXXX:004024AA POP EDI
XXXX:004024AB POP ESI

所以在XXXX:0040249C CALL 00415250设断,重追一次...

9.追入XXXX:0040249C CALL...
一直按F10...直到如下∶

XXXX:00415270 MOV AL,[ESI] ;ESI指向我们输入的注册码
XXXX:00415272 INC ESI
XXXX:00415273 MOV AH,[EDI] ;EDI指向正确的注册码
XXXX:00415275 INC EDI
XXXX:00415276 CMP AH,AL ;要害!!!比对核心!!!
XXXX:00415278 JZ 0041526C ;相同则跳到0041526C

所以执行到∶
XXXX:00415270 MOV AL,[ESI]...下 D ESI...看到我们输入的注册码
1234567890
XXXX:00415273 MOV AH,[EDI]...下 D EDI...看到正确的注册码
PFABLJXIVS

当然也可改程式码,变成随便注册版...

10.整理∶

程式名∶Internet Utilities 97 v2.0.24
取得处∶Hope-Net (37) \Internet\misc\iu97trl.exe
注册码∶PFABLJXIVS
Enjoy it...Crack by yhq 1997.07.09




月光软件源码下载编程文档电脑教程网站优化网址导航网络文学游戏天地生活休闲写作范文安妮宝贝站内搜索
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有