《超級解霸2000 限時作廢試用版》的破解方法 (3千字)

看雪資料發表於2001-06-15

《超級解霸2000 限時作廢試用版》的破解方法
作者:RATARICE[BCG]
目標:超級解霸2000 限時作廢試用版 
      關於它我就不多說什麼了。
工具:TRW2000 1.22、ULTRAEDIT-32
過程:
一、 大家都知道超級解霸5.5可以透過該登錄檔的RUNTIME項,使它多執行幾次,解霸2000也可以這樣做。但      那不是學破解的風格。所以我寫了它的破解方法。
二、 啟動TRW2000,動態跟蹤它,到下面:
     
015F:00414947  CALL    `KERNEL32!WritePrivateProfileStringA`    比較你這次共用了幾次,
015F:0041494D  CMP      EBX,BYTE +1E ---------------------------->大於30就出錯
015F:00414950  JNG      00414974 -------------------------------->所以這裡要跳
015F:00414952  CALL    0040FCC0
015F:00414957  MOV      ECX,[004287BC]
015F:0041495D  MOV      EAX,[004287B8]
015F:00414962  CMP      ECX,EAX
015F:00414964  JZ      0041496D
015F:00414966  PUSH    ECX
015F:00414967  CALL    `KERNEL32!FreeLibrary`
015F:0041496D  XOR      EAX,EAX
015F:0041496F  JMP      004150EF
015F:00414974  MOV      EAX,[00428780]
015F:00414979  TEST    EAX,EAX
015F:0041497B  JZ      004149D6
015F:0041497D  LEA      EAX,[ESP+68]
015F:00414981  PUSH    EAX
015F:00414982  CALL    `KERNEL32!GetSystemTime`
015F:00414988  MOV      ECX,[ESP+68]
015F:0041498C  XOR      EAX,EAX
015F:0041498E  MOV      AX,[ESP+6A]
015F:00414993  AND      ECX,FFFF
015F:00414999  SHL      ECX,04
015F:0041499C  MOV      EDX,[00428780]
015F:004149A2  OR      ECX,EAX
015F:004149A4  XOR      EAX,EAX
015F:004149A6  SHL      ECX,08
015F:004149A9  MOV      AX,[ESP+6E]
015F:004149AE  OR      ECX,EAX
015F:004149B0  CMP      ECX,EDX
015F:004149B2  JNA      004149D6
015F:004149B4  CALL    0040FCC0
015F:004149B9  MOV      ECX,[004287BC]
015F:004149BF  MOV      EAX,[004287B8]
015F:004149C4  CMP      ECX,EAX
015F:004149C6  JZ      004149CF
015F:004149C8  PUSH    ECX
015F:004149C9  CALL    `KERNEL32!FreeLibrary`
015F:004149CF  XOR      EAX,EAX
015F:004149D1  JMP      004150EF
015F:004149D6  CALL    0040FD50 -------------------------------->進入
015F:004149DB  TEST    EAX,EAX --------------------------------->比較是否成功
015F:004149DD  JNZ      00414A01 -------------------------------->成功就跳
015F:004149DF  CALL    0040FCC0 -------------------------------->出錯資訊


      進入CALL 0040FD50 程式碼如下:

015F:0040FD57  PUSH    EBX
015F:0040FD58  PUSH    ESI
015F:0040FD59  PUSH    EAX
015F:0040FD5A  PUSH    DWORD 0002001F
015F:0040FD5F  PUSH    BYTE +00
015F:0040FD61  PUSH    DWORD 00427FBC
015F:0040FD66  PUSH    DWORD 80000002
015F:0040FD6B  CALL    `ADVAPI32!RegOpenKeyExA`
015F:0040FD71  TEST    EAX,EAX
015F:0040FD73  JZ      0040FD99 ------------------------------>不要跳
015F:0040FD75  LEA      EAX,[ESP+0C]
015F:0040FD79  PUSH    EAX
015F:0040FD7A  PUSH    DWORD 00427FBC
015F:0040FD7F  PUSH    DWORD 80000002
015F:0040FD84  CALL    `ADVAPI32!RegCreateKeyA`
015F:0040FD8A  TEST    EAX,EAX
015F:0040FD8C  JZ      0040FD99 ------------------------------>不要跳
015F:0040FD8E  MOV      EAX,FFFFFFFF
015F:0040FD93  POP      ESI
015F:0040FD94  POP      EBX
015F:0040FD95  ADD      ESP,BYTE +10
015F:0040FD98  RET   

三、 關掉TRW2000和解霸2000,啟動ULTRAEDIT-32
      找到 7E 22 E8 69 B3 FF FF 8B
          ^^ ^^---------------------->改為 EB 22
      找到 74 24 8D 44 24 0C 50 68
          ^^ ^^---------------------->改為 90 90
      找到 74 0B B8 FF FF FF FF 5E
          ^^ ^^---------------------->改為 90 90

0K!不論RUNTIME的值是幾,就算是零!也可以安然享用超級解霸2000帶來的快感了!

相關文章