破解<<生日字典密碼生成器 v3.7 password>> 的註冊碼 (4千字)

看雪資料發表於2001-10-21

破解<<生日字典密碼生成器 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分鐘,輕鬆搞定。

相關文章