= 11、Netterm 4.10 破解法 !!! ==============================================

弟从这一期(36)的HOPE NET看到此软体...

弟一直是Netterm的爱用者...

版上早已有高手算出注册码...

不过不能填自己的名字...总是觉得有点缺憾...

所以又手痒难耐啦...呵呵...:P

把他trace了一下:

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: 随你高兴...想填啥就填啥

^___^

PS: 感谢网友pank将其中文化...让众网友能享受最新的中文化 Netterm !!!