破解 Active Send Mail (郵件群發器) 2.6 (Build 2601) - 我第一次用TRW追出了註冊碼啊!:) (7千字)

看雪資料發表於2001-12-09

破解 Active Send Mail (郵件群發器) 2.6 (Build 2601)


軟體名稱:Active Send Mail (郵件群發器) 2.6(Build 2601)
檔案大小:1140KB
軟體授權:共享軟體
使用平臺:Win9x/Me/NT/2000
釋出公司:http://www.co-top.com/
軟體簡介:這是一個用來發垃圾郵件的工具....
未註冊版本限制: 傳送的垃圾郵件中均附帶軟體的宣傳連線

原版軟體下載: http://www.csdn.net/soft/openfile.asp?kind=1&id=14633 (CSDN)
              http://www.co-top.com/download/sndmail.exe (官方網站)

破解工具:TRW2000 1.22 漢化增強版、w32dasm 中文黃金版


很早以前我爆破過這個軟體的舊版本,記得只要改半個位元組就可以爆破成功,今天找新版本來開刀吧!:)
這也是我第一次成功用 TRW 追出了軟體的註冊碼(高手們不要笑我啊),相對於我在看雪論壇這裡貼的前兩篇破文,應該有了一點點進步吧!:)

軟體的註冊形式是給你一個機器碼,然後註冊後會發給你對應機器碼的註冊碼。

破解過程:

1. 執行軟體,關於/註冊,在這裡可以看到我的機器碼“EM613060620347XU”,隨便填入註冊碼“78787878”。
2. 按 Ctrl+N 啟用 TRW,
  輸入  bpx hmemcpy  <---- 下萬能斷點 hmemcpy
  輸入  g            <---- 把控制權還給程式,程式繼續執行
  這時返回到註冊視窗,點選“註冊”按鈕,馬上被 TRW 攔截下來了,這時在螢幕下方可以看到: Break on BP1,說明攔截成功。
  輸入  bc *        <---- 清除斷點
  輸入  pmodule

  接下來按41次 F10(42 次時跳出註冊失敗的提示)後若干次 F12,來到下面 (trw 抓取螢幕的方法我還沒搞清楚,先用w32dasm 反彙編出來的代替吧!):

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004C5C87(C)
|
:004C5CDB 8B55F0                  mov edx, dword ptr [ebp-10]
:004C5CDE 8D45F8                  lea eax, dword ptr [ebp-08]
:004C5CE1 E8A2EAF3FF              call 00404788
:004C5CE6 8D55E8                  lea edx, dword ptr [ebp-18]
:004C5CE9 8B83FC020000            mov eax, dword ptr [ebx+000002FC]
:004C5CEF E8500EF8FF              call 00446B44
:004C5CF4 8B45E8                  mov eax, dword ptr [ebp-18]
:004C5CF7 8D55EC                  lea edx, dword ptr [ebp-14]
:004C5CFA E80530F4FF              call 00408D04
:004C5CFF 8B55EC                  mov edx, dword ptr [ebp-14]
:004C5D02 8B45F8                  mov eax, dword ptr [ebp-08]
:004C5D05 E8E2EDF3FF              call 00404AEC              <------ 在這個call裡比較註冊碼,F8跟進去...
:004C5D0A 7536                    jne 004C5D42              <------ 如果輸入的註冊碼與正確的不等,則
                                                                    彈出錯誤提示,此處改 je 004C5D42
                                                                    即可爆破成功!

* Possible StringData Ref from Code Obj ->"註冊成功"
                                  |
:004C5D0C B8A85D4C00              mov eax, 004C5DA8
:004C5D11 E8BE97F7FF              call 0043F4D4
:004C5D16 8B45F8                  mov eax, dword ptr [ebp-08]
:004C5D19 50                      push eax
:004C5D1A 8D45E4                  lea eax, dword ptr [ebp-1C]
:004C5D1D E876C6FEFF              call 004B2398
:004C5D22 8B45E4                  mov eax, dword ptr [ebp-1C]

* Possible StringData Ref from Code Obj ->"RegistNo"
                                  |
:004C5D25 B9BC5D4C00              mov ecx, 004C5DBC

* Possible StringData Ref from Code Obj ->"Regist"
                                  |
:004C5D2A BAD05D4C00              mov edx, 004C5DD0
:004C5D2F E8C0C3FEFF              call 004B20F4

* Possible StringData Ref from Code Obj ->"已經註冊"
                                  |
:004C5D34 BAE05D4C00              mov edx, 004C5DE0
:004C5D39 8BC3                    mov eax, ebx
:004C5D3B E8340EF8FF              call 00446B74
:004C5D40 EB18                    jmp 004C5D5A

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004C5D0A(C)                                             
|

* Possible StringData Ref from Code Obj ->"註冊碼錯誤!"
                                  |
:004C5D42 B8F45D4C00              mov eax, 004C5DF4
:004C5D47 E88897F7FF              call 0043F4D4
:004C5D4C 8B83FC020000            mov eax, dword ptr [ebx+000002FC]
:004C5D52 8B10                    mov edx, dword ptr [eax]
:004C5D54 FF92C0000000            call dword ptr [edx+000000C0]


按 F8 進入 call 00404AEC:

* Referenced by a CALL at Addresses:
|:00418563  , :0041F00E  , :0041FE0F  , :004259D1  , :00426E34 
|:00434E5C  , :004459AE  , :00445A3C  , :00445B92  , :00446969 
|:00446B9C  , :00448AAB  , :00452E8F  , :0045363B  , :004538C9 
|:0045398B  , :00453B09  , :00456D15  , :0045719F  , :0045725E 
|:004576D2  , :0045791B  , :00458193  , :00458B99  , :00458D4F 
|:004599C1  , :00459BA3  , :00459F7F  , :00467C73  , :0046B6D1 
|:0046B7B5  , :0046CB48  , :0046CB6D  , :0046CC68  , :0046CCC9 
|:0046F5C3  , :0047C677  , :0047CAB6  , :0047E313  , :0047ECA3 
|:0047F09C  , :00480DEE  , :00496769  , :004A7E1D  , :004A7FD8 
|:004A94D2  , :004A9578  , :004A95BC  , :004A9EE4  , :004A9F07 
|:004A9F15  , :004C5D05  , :004C5E9E  , :004CCBB2  , :004CCBC5 
|:004CD150  , :004CD1DF  , :004CD3A1  , :004CD658  , :004CE992 
|:004CEA5C  , :004CEB03  , :004CFBFE  , :004CFC25  , :004D2EF1 
|:004D2F26  , :004D3902  , :004D3A25  , :004D5C32  , :004D61B3 
|:004D676F  , :004D69DA  , :004D71D6  , :004D728A  , :004D7CD9 
|:004D7CFE  , :004D99B2  , :004DC3AE  , :004DC9C9  , :004DDFF6 
|:004DE01A 
|
:00404AEC 53                      push ebx      <----- 進入後光棒停在這裡,往下走
:00404AED 56                      push esi
:00404AEE 57                      push edi
:00404AEF 89C6                    mov esi, eax 
:00404AF1 89D7                    mov edi, edx 
:00404AF3 39D0                    cmp eax, edx  <----- 比較 eax 與 edx 是否相等,經典啊!
:00404AF5 0F848F000000            je 00404B8A
:00404AFB 85F6                    test esi, esi
:00404AFD 7468                    je 00404B67
:00404AFF 85FF                    test edi, edi
:00404B01 746B                    je 00404B6E
:00404B03 8B46FC                  mov eax, dword ptr [esi-04]
:00404B06 8B57FC                  mov edx, dword ptr [edi-04]
:00404B09 29D0                    sub eax, edx
:00404B0B 7702                    ja 00404B0F
:00404B0D 01C2                    add edx, eax

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404B0B(C)
|
:00404B0F 52                      push edx
:00404B10 C1EA02                  shr edx, 02
:00404B13 7426                    je 00404B3B


在 ":00404AF3 39D0      cmp eax, edx"  處,下 d eax 即可得正確的註冊碼“V?GHDGGGGIAJENPG”,下 d edx,可以在記憶體區看到我輸入的假註冊碼“78787878”.

至此軟體破解完成,我的註冊碼為:
機器碼:EM613060620347XU
註冊碼:V?GHDGGGGIAJENPG

用軟體給自己的幾個信箱傳送了一下郵件,軟體的宣傳連結已經沒有了,說明找到的註冊碼是正確的。

註冊資訊儲存在生成的 System.snm 檔案中(文字格式)。


3. 製作另類序號產生器
開啟 序號產生器編寫器 1.4,選擇選單“其它”->“另類序號產生器”,在彈出的設定框中,進行如下設定:
a.按“瀏覽”按鈕,選擇主程式檔案 sndmail.exe
b.按下方“新增”銨鈕,新增如下資料:

    地址一
    中斷地址: 4C5D05
    中斷次數: 1
    第一位元組: E8
    指令長度: 5

    地址二
    中斷地址: 404AF3
    中斷次數: 1
    第一位元組: 39
    指令長度: 2

c.在右邊註冊碼選項中選擇“記憶體方式”,並選中下面的單選框,選擇eax
d.設定使用者資訊
e.按“生成”,輸入生成的EXE檔名




                                                            炎之川 於 2001.12.9
                                                            emali: skipli@sina.com
                                                            QQ: 6148025

相關文章