=============================================
yhq 破解實戰錄 03 --- 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: 隨你高興...想填啥就填啥


^___^