實戰破解000- 短信轟炸機的爆破
軟件截圖

-
-
[找到第一個驗證CALL]
-
[找到第二個驗證CALL]
-
[總結兩個驗證CALL的作用]
-
[效果圖]
-
-
爆破
X96Dbg附加上去 , 有殼子 ,轉到0X401000

是易語言程序的特征 , 並且沒有將代碼VM , 搜索特征碼FF55FC5F5E(易語言按鈕事件)

E-Debug分析一下 , 單步跟蹤進去

判斷編輯框1是否有內容

將40B42F其改成jmp ,40B4C1是判斷編輯框2是否有內容 , 也改成jmp

單步跟蹤到40B59F,進入了第一個驗證CALL(0040BF09) , 返回 “ 賬號不能為空” ,在這下上斷點,我們修改編輯框1內容

賬號不為空的時候返回 eax:""簽名錯誤""

因為我們沒有正版卡密,所以無法知道這個驗證CALL應該返回什么值,給驗證CALL打上標簽,並在驗證CALL下上斷點,防止第二次驗證,讓我們繼續往下跟,發送token,我不知道token是啥,在未來的網絡驗證編寫后,一定補上這個知識點

單步到這里 , 發現一個長跳轉 , 按下G鍵 , 打開流程圖

我們要跳轉的地方,要執行的代碼太少了 (我們優先讓代碼走更多的代碼)將0040B66E NOP掉

往下單步 , 走到了 這個地方 , 0040B6A0 , 0040B6C0 , 應該是屬於驗證回調,EAX為回調ID
0040B691 | 8D45 FC | lea eax,dword ptr ss:[ebp-4] | [ebp-4]:"\"簽名錯誤\""
0040B694 | 50 | push eax |
0040B695 | 8D45 F8 | lea eax,dword ptr ss:[ebp-8] | [ebp-8]:&"{(K"
0040B698 | 50 | push eax |
0040B699 | 8B0424 | mov eax,dword ptr ss:[esp] |
0040B69C | 8B00 | mov eax,dword ptr ds:[eax] |
0040B69E | 8B00 | mov eax,dword ptr ds:[eax] |
0040B6A0 | FF50 0C | call dword ptr ds:[eax+C] |
0040B6A3 | B8 EFD15600 | mov eax,短電炸死你.56D1EF | 56D1EF:"user"
0040B6A8 | 8945 F4 | mov dword ptr ss:[ebp-C],eax | [ebp-C]:"user"
0040B6AB | 8D45 F4 | lea eax,dword ptr ss:[ebp-C] | [ebp-C]:"user"
0040B6AE | 50 | push eax |
0040B6AF | 8D45 F8 | lea eax,dword ptr ss:[ebp-8] | [ebp-8]:&"{(K"
0040B6B2 | 50 | push eax |
0040B6B3 | 8B0424 | mov eax,dword ptr ss:[esp] |
0040B6B6 | 8B00 | mov eax,dword ptr ds:[eax] |
0040B6B8 | 8B00 | mov eax,dword ptr ds:[eax] |
0040B6BA | FF50 24 | call dword ptr ds:[eax+24] |
0040B6BD | 8945 F0 | mov dword ptr ss:[ebp-10],eax |
0040B6C0 | 8B5D F4 | mov ebx,dword ptr ss:[ebp-C] | [ebp-C]:"user"

繼續往下跟蹤 , 還會有幾個進 "回調"CALL的地址 不管他們
0040B787 ->0040B828 ,一段很多參數的CALL , 很多參數一般不管他,F8步過

EAX變為了0,沒啥用,給這個CALL(00407CEE)打上未知CALL , F8下去
單步走下去遇到了第二個驗證 0040C265 , 返回值eax:""簽名錯誤""

往下單步,出現文本比較,5849E0:""驗證成功"" - [ebp-10]:""簽名錯誤""

看來 0040C265 驗證2CALL是關鍵CALL 了 , 將其修改成這樣

載入功能窗口了 , F9運行起來

彈出"驗證成功",看來0040C265是判斷是否是VIP ,00407CEE是判斷用戶操作是否合法

測試功能(正常) 保存補丁

效果圖

請勿用於非法用途,后果自負!