• 标 题:疯狂单词的破解方法! (3千字)
  • 作 者:xiA Qin
  • 时 间:2000-8-22 16:24:06
  • 链 接:http://bbs.pediy.com

写    作:xiA Qin

软件名称:疯狂单词 Wordslover 1.0 betal1

输入注册信息:任意输入。

注册号码:只能输入数字,为什么?你试一试就知道了。


下指令bpx hmemcpy    //下中断点 

按F5回到程序,按确定,这时会被Trw2000拦截到。

下指令bd *            //屏障中断点

下指令pmodule        //直接跳到程序的领空


按F10来到下面指令
.................
015F:00404DF5 8D4C2458        LEA      ECX,[ESP+58]
015F:00404DF9 C68424E400000009 MOV      BYTE [ESP+E4],09
015F:00404E01 51              PUSH    ECX
015F:00404E02 8D4E24          LEA      ECX,[ESI+24]
015F:00404E05 E8BA230300      CALL    004371C4
015F:00404E0A 8B54245C        MOV      EDX,[ESP+5C]
015F:00404E0E 8D4C2464        LEA      ECX,[ESP+64]
015F:00404E12 895628          MOV      [ESI+28],EDX
015F:00404E15 C70660BD4500    MOV      DWORD [ESI],0045BD60
015F:00404E1B C68424E400000001 MOV      BYTE [ESP+E4],01
015F:00404E23 E8C84D0000      CALL    00409BF0      //注册码比较。按F8进入。
015F:00404E28 84C0            TEST    AL,AL
015F:00404E2A 6A00            PUSH    BYTE +00
015F:00404E2C 6A00            PUSH    BYTE +00
015F:00404E2E 7507            JNZ      00404E37       
015F:00404E30 68F0024700      PUSH    DWORD 004702F0 //注册成功
015F:00404E35 EB05            JMP      SHORT 00404E3C
015F:00404E37 68D0024700      PUSH    DWORD 004702D0 //注册失败
015F:00404E3C E8DDE40300      CALL    0044331E
015F:00404E41 8B442428        MOV      EAX,[ESP+28]
。。。。。。。。。。。。。。。。。。。。。。。。

按F8进入00404E23    CALL    00409BF0
按F10来到下面:


015F:00409EE0 8B4C2414        MOV      ECX,[ESP+14]
015F:00409EE4 8B8424E0010000  MOV      EAX,[ESP+01E0]
015F:00409EEB 5F              POP      EDI
015F:00409EEC 5E              POP      ESI
015F:00409EED 3BC1            CMP      EAX,ECX            <-正确的注册码。d ecx
015F:00409EEF 5D              POP      EBP
015F:00409EF0 C68424A401000000 MOV      BYTE [ESP+01A4],00
015F:00409EF8 8D4C2404        LEA      ECX,[ESP+04]
015F:00409EFC 7436            JZ      00409F34          <-修改这里。
015F:00409EFE E84CD50200      CALL    0043744F
015F:00409F03 8D8C24AC010000  LEA      ECX,[ESP+01AC]
015F:00409F0A C78424A4010000FF+MOV      DWORD [ESP+01A4],FFFFFFFF
015F:00409F15 E896070000      CALL    0040A6B0
015F:00409F1A 32C0            XOR      AL,AL
015F:00409F1C 8B8C249C010000  MOV      ECX,[ESP+019C]
015F:00409F23 5B              POP      EBX
015F:00409F24 64890D00000000  MOV      [FS:00],ECX
015F:00409F2B 81C4A4010000    ADD      ESP,01A4
015F:00409F31 C22C00          RET      2C
015F:00409F34 E816D50200      CALL    0043744F
015F:00409F39 8D8C24AC010000  LEA      ECX,[ESP+01AC]
015F:00409F40 C78424A4010000FF+MOV      DWORD [ESP+01A4],FFFFFFFF
015F:00409F4B E860070000      CALL    0040A6B0
015F:00409F50 B001            MOV      AL,01
015F:00409F52 EBC8            JMP      SHORT 00409F1C

.............................

第一种方法:爆破
把00409EFC 7436            JZ      00409F34
改00409EFC 7536            JNZ      00409F34

找到74 36 E8 4C D5 02 00

改成75 36 E8 4C D5 02 00

第二种方法:注册码
注册码:
EAX的值是你输入的注册码的十六进制。

将ECX的值换算成十进制就是正确的注册码。