• 标 题:《超级解霸2000 限时作废试用版》的破解方法 (3千字)
  • 作 者:RATARICE[BCG]
  • 时 间:2001-6-15 23:49:37
  • 链 接:http://bbs.pediy.com

《超级解霸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带来的快感了!