• 标 题:破解<<生日字典密码生成器 v3.7 password>> 的注册码 (4千字)
  • 作 者:asmboy[BCG]
  • 时 间:2001-10-21 13:17:59
  • 链 接:http://bbs.pediy.com

破解<<生日字典密码生成器 v3.7 password>> 的注册码
--------------------------------------------------------------------------------

破解:AsmBoy[BCG]
Mail:asmboy@263.net
QQ:384772


软件下载地方:http://bcrystal.51.net/
难度级别:初级,练手用的,高手莫看:)

所需工具:

TRW 2000
汇编知识 (至少是基础)
大脑一个 (你有一个吧 , 我是有的! :p )

软件历史:

因现在网上流行几个破解QQ的密码的软件,都是需要字典的,发现在这个以生日为密码的字典生成工具不错,就拿来练练手,没有注册前只能生成一些简单的生日密码,注册后就没有这些限制了。
言归正转,开工罗....;O

步骤:
用TRW2000载入password.exe文件,F5返回程序,选择注册,输入78787878(随便输的,无所谓,只不过习惯了78大法,呵。。),按CTRL+N返回TRW2000,下断点BPX MESSAGEBOXA,用F5返回程序,被拦下了,用PMODULE
返回主程序,按F6键,将光标移到代码区,用PAGE UP向上翻N次,找到 CALL  MSVCRT!_mbscmp


0167:00402E2B 8B4560          MOV      EAX,[EBP+60]
0167:00402E2E 68E0694000      PUSH    DWORD 004069E0
0167:00402E33 50              PUSH    EAX
0167:00402E34 FF1520424000    CALL    `MSVCRT!_mbscmp`  关键部分,比较注册码就在这里面
0167:00402E3A 83C408          ADD      ESP,BYTE +08
0167:00402E3D 85C0            TEST    EAX,EAX
0167:00402E3F 757E            JNZ      00402EBF
0167:00402E41 83C9FF          OR      ECX,BYTE -01
0167:00402E44 683C684000      PUSH    DWORD 0040683C
0167:00402E49 F2AE            REPNE SCASB
0167:00402E4B F7D1            NOT      ECX
0167:00402E4D 2BF9            SUB      EDI,ECX
0167:00402E4F 53              PUSH    EBX


将光标移到这行,按F9下断点,F5返回程序,输入注册码,再次点注册,被断下,用F8单步
跟踪进入CALL  MSVCRT!_mbscmp,按N次F8,单步跟踪到JNZ 7800E85C
用A CS:EIP  输入NOP,NOP,

以下是第一个CALL  MSVCRT!_mbscmp的内容

0167:7800E83B 55              PUSH    EBP
0167:7800E83C 8BEC            MOV      EBP,ESP
0167:7800E83E 833DD479037800  CMP      DWORD [780379D4],BYTE +00
0167:7800E845 53              PUSH    EBX
0167:7800E846 56              PUSH    ESI
0167:7800E847 57              PUSH    EDI
0167:7800E848 90              JNZ      7800E85C            关键哦,改成NOP,NOP
0167:7800E84A FF750C          PUSH    DWORD [EBP+0C]
0167:7800E84D FF7508          PUSH    DWORD [EBP+08]
0167:7800E850 E8224AFFFF      CALL    `MSVCRT!strcmp`
0167:7800E855 59              POP      ECX
0167:7800E856 59              POP      ECX
0167:7800E857 5F              POP      EDI
0167:7800E858 5E              POP      ESI
0167:7800E859 5B              POP      EBX
0167:7800E85A 5D              POP      EBP

再次按F8进入另一个CALL  MSVCRT!_mbscmp,单步跟踪N次看到CMP AL,[ECX],这时我们
用D ECX,就可以看到万能注册码:

以下是第二个CALL  MSVCRT!_mbscmp的内容

0167:78003277 8B542404        MOV      EDX,[ESP+04]
0167:7800327B 8B4C2408        MOV      ECX,[ESP+08]
0167:7800327F F7C203000000    TEST    EDX,03
0167:78003285 0F855DD40000    JNZ      NEAR 780106E8
0167:7800328B 8B02            MOV      EAX,[EDX]
0167:7800328D 3A01            CMP      AL,[ECX]        看ECX寄存器D ECX
0167:7800328F 7530            JNZ      780032C1        注册码为:prch@8848.net
0167:78003291 0AC0            OR      AL,AL
0167:78003293 7429            JZ      780032BE
0167:78003295 3A6101          CMP      AH,[ECX+01]
0167:78003298 7527            JNZ      780032C1
0167:7800329A 0AE4            OR      AH,AH
0167:7800329C 7420            JZ      780032BE
0167:7800329E C1E810          SHR      EAX,10
0167:780032A1 3A4102          CMP      AL,[ECX+02]
0167:780032A4 751B            JNZ      780032C1
0167:780032A6 0AC0            OR      AL,AL
0167:780032A8 7414            JZ      780032BE
0167:780032AA 3A6103          CMP      AH,[ECX+03]
0167:780032AD 7512            JNZ      780032C1
0167:780032AF 83C104          ADD      ECX,BYTE +04
0167:780032B2 83C204          ADD      EDX,BYTE +04
0167:780032B5 0AE4            OR      AH,AH
0167:780032B7 75D2            JNZ      7800328B
0167:780032B9 E923D40000      JMP      780106E1
0167:780032BE 33C0            XOR      EAX,EAX
0167:780032C0 C3              RET   
0167:780032C1 1BC0            SBB      EAX,EAX
0167:780032C3 D1E0            SHL      EAX,1
0167:780032C5 40              INC      EAX

至此,破解过程完成,为时15分钟,轻松搞定。