= 44、More Than Word V3.0 For Win95 =========================================

            More Than Word V3.0 For Win95
  用一般 Windows API 都拦不到,在主程式後面找到 'PKWARE' 字串,
  我猜可能用 PKWARE 压缩过!
 
  1>. 执行 WinICE ,进入 Windows 95 後,按 [Ctrl] + D 切换到
      S-Ice ,拦 BPX GetCommandLineA ,
      再按 [F5] 回 Windows 95
 
  2>. 执行 MTW
 
  3>. S-Ice 会启动中断点,用 BD * (先关掉中断点)
 
  4>. 按 [F10] 一直回到 MTW!CODE,这时你应该可以发现
      程式的进入点在 CS∶00⒋⒈0000
 
  5>. 继续一直按著 [F10] , 会走到一个 Loop , 如下:
       CS:00410479 PUSH 00        ←┐
        :                          ┃
        :                          ┃主要执行区
        :                          ┃
      CS:004104A2 JMP  00410479  ━┘
 
      离不开... 怎么办?
      没关系... 好戏才刚要上场而已...
 
  6>. 下 BPX CS∶00⒋⒈0⒎⒌F
      (往下面多设几个中断点,不小心猜到的... :p )
      (有时候破解还是靠一点运气...              )
      按 [F5] , 回到 MTW
 
  7>. 按 [Send] , S-Ice 会启动中断点,并停在 CS∶00⒋⒈0⒎F 的地方
 
  8>. 继续一直按著 [F10] , 走...走...走...走到下面:
       CS:00410984 CMP  BYTE PTR [00440729],02    ;
      CS:0041098B JZ   004109A6                  ;
      CS:0041098D CALL 00410D4B                  ;
      CS:00410992 CALL 00419474                  ;
      CS:00410997 CALL 004129A0                  ;← 追进去,这里是输入注册码
      CS:0041099C CALL 00419474                  ;   的地方
      CS:004109A1 JMP  0041062F                  ;
        :                                        ;
        :                                        ;
 
      继续一直按著 [F10] , 哇~ 又走到一个大 Loop ...
 
      CS:00412D3B CMP  WORD PTR [004403BC],00    ←┐  ;
      CS:00412D43 JZ   0041307A                    ┃  ;← 这里会往下跳
      CS:00412D49 XOR  AX,AX                       ┃  ;← 所以在此下中断点,
      CS:00412D4C XCHG AX,[004403BC]               ┃  ;   待会就会发生作用...
      CS:00412D53 CALL 00410CD5                    ┃  ;
      CS:00412D58 JB   0041307A                    ┃  ;
        :                                          ┃  ;
        :                                          ┃  ;
        :                                          ┃  ;
      CS:00413274 JMP  00412D3B                  ━┘  ;
 
  9>. 按 [F5] 回到 MTW,输入 Full name 和 Access Code 先随便打
      後,按 [Validate Access Code number],S-Ice 会再度启动中断点,
      并停在刚刚下中断点 CS∶00⒋⒈⒉D⒋⒐ 的地方
 
 10>. 继续一直按著 [F10] , 走...走...走...走到下面,
      哇~ 哈! 哈! 总算找到我们要的目标... :-)
      CS:00412E97 MOV  AL,[ESI]       ←┐     ;注一∶这里是刚刚随便打的 Code
      CS:00412E99 CMP  [EDI],AL         ┃     ;注二∶这里就是重点啦~
      CS:00412E9B JNZ  00412F74         ┃     ;注册码错误,就立刻跳出去!
      CS:00412EA1 INC  ESI              ┃     ;
      CS:00412EA2 INC  EDI              ┃     ;
      CS:00412EA3 LOOP 00412E97       ━┘     ;
        :
        :
 
      注一∶注意 S-Ice 右上角会出现 DS:????????=XX  (XX:就是随便输入的)
                                                    (   Access Code   )
      注二∶注意 S-Ice 右上角会出现 DS:########=YY  (YY:才是正确的Access Code)
            但是会差一个 byte !
 
            Access Code 格式: xxx-xxx-xxx-xxx
            (假设你输入的格式是 111-222-333-444 在记忆体中,)
            (它会把 '-' 减号去掉,像这样: 111222333444      )
 
            你可以 D DS:######## (Dump DS:######## 记忆体资料) 出来看,
            嘿~ 嘿~ 你可以看到一排数字,数一数,咦? 不对呀! 怎么只有
            11 个数字ㄋㄟ,呵...,跟我玩躲猫猫,喔~ 原来躲到左边去了。
 
            像我的是显示 DS∶00⒋⒋⒌⒏0D=?? 此时要 Dump 出来
            看的话,则是 D DS∶00⒋⒋⒌⒏0C (减一,就对了!)
 
            如果还是不足⒈⒉个数字的话,则後面全部补0,中间有空白的,
            也是一样补0,这样了改了吧~
 
 11>. 赶快把你看到的⒈⒉个数字抄下来,假设你看到的是这样∶772_6945134_
      好了,按 [F5] 回 MTW ,把刚刚抄下来的⒈⒉个数字打上去,如下面∶
       Access Code∶⒎⒎⒉-0⒍⒐-⒋⒌⒈-⒊⒋0
 
      P.S.1. 这个 Access Code 只是随便假设的,你可别真的照打喔~
             因为 Access Code 会随 Product number 的变动而有所不同。
      P.S.2. 有没有愿意偷偷的告诉我,那里拿得到 Soft-ICE for NT 呢?
             请私下 mail 给我...