mIRC V5.71分析 (9千字)

看雪資料發表於2000-08-19

目標程式:mIRC V5.71 32Bit
程式下載:http://ilike.myrice.com/soft_chat/mirc_2.html
使用工具:TRW2000,Turbo c++3.0 編譯器
保護方式:註冊碼
難易程度:易,適合初學者練習寫序號產生器。

最近申請了一個IRC聊天(202.96.137.64 頻道:#Crack),當然選用mRIC這個最流行的 IRC 客戶程式,這是一個十分優秀的共享軟體,不註冊有時間限制。剛好今天閒著沒事,好久沒為新手寫東西了,故以這軟體為例,談談如何寫序號產生器。
拿到這個軟體,首先執行一遍,看看功能是否有限制,然後再看看註冊方式,還好,這是一個常用的註冊保護方式,不註冊還有NAG跳出,在Help處輸入註冊碼,當然我們從輸入註冊碼方式來下手了。
在破解序列號有多種方式,我們這次採用常用的方法,就是根據出錯的對話方塊,反推找到註冊碼比較核心。

註冊不成功時,會跳出一對話方塊。因此我們用bpx messagboxa設斷來攔截這個對話方塊。


0167:004A33A8  PUSH    DWORD 00531B23  -- -序列號進棧
0167:004A33AD  PUSH    DWORD 0053173C--- - ID進棧
0167:004A33B2  CALL    004A2F9C―――――重點!!!跟進看何處使EAX可不為0
0167:004A33B7  TEST    EAX,EAX ――――― 試著下 EAX=0註冊失敗(這是以EAX為旗幟)
0167:004A33B9  JZ      NEAR 004A345A―――這裡也可跳過
..........................................................
..........................................................
0167:004A3450  MOV      EAX,01
0167:004A3455  JMP      004A351A――――――這裡可跳過
..........................................................
..........................................................
0167:004A34AA  PUSH    EAX
0167:004A34AB  MOV      EAX,[EBP+08]
0167:004A34AE  PUSH    EAX
0167:004A34AF  CALL    `USER32!MessageBoxA`―出錯的對話方塊,然後向上分析何處跳過此處。

========================================

跟進0167:004A33B2  CALL    004A2F9C後:

0167:004A2FBD  MOV      EAX,EDI
0167:004A2FBF  MOV      EDX,ECX
0167:004A2FC1  SHR      ECX,02
0167:004A2FC4  REP MOVSD --------- 如在TRW2000裡按F10,會馬上帶過下面程式碼(因此在這裡用F8)
0167:004A2FC6  MOV      ECX,EDX----而在SOFTICE裡就沒這種情況。
0167:004A2FC8  AND      ECX,BYTE +03
0167:004A2FCB  REP MOVSB  ---------這裡用TRW2000時,按f8
0167:004A2FCD  POP      ESI
0167:004A2FCE  PUSH    ESI
0167:004A2FCF  MOV      EDI,ESI
0167:004A2FD1  MOV      ESI,005425DC
0167:004A2FD6  XOR      EAX,EAX
0167:004A2FD8  OR      ECX,BYTE -01
0167:004A2FDB  REPNE SCASB  ---------這裡用TRW2000時,按f8
0167:004A2FDD  NOT      ECX
0167:004A2FDF  SUB      EDI,ECX
0167:004A2FE1  XCHG    ESI,EDI
0167:004A2FE3  MOV      EAX,EDI

0167:004A2FF3  POP      ESI
0167:004A2FF4  PUSH    DWORD 005425DC-----序列號進棧
0167:004A2FF9  PUSH    DWORD 005424DC ----ID進棧
0167:004A2FFE  CALL    004A2EA4----------------重點!!!跟進看何處使EAX可不為0
0167:004A3003  TEST    EAX,EAX------------------EAX=0失敗
0167:004A3005  JZ      004A300E

========================================
按F8跟進0167:004A2FFE  CALL    004A2EA4裡,如下:
0167:004A2EB9  POP      ECX
0167:004A2EBA  CMP      EAX,BYTE


宣告:該文觀點僅代表作者本人,轉載請註明來自看雪專欄
最新評論 (0)
登入後即可評論

相關文章