1. 程式人生 > >逆向破解之160個CrackMe —— 017

逆向破解之160個CrackMe —— 017

CrackMe —— 017

160 CrackMe 是比較適合新手學習逆向破解的CrackMe的一個集合一共160個待逆向破解的程式

CrackMe:它們都是一些公開給別人嘗試破解的小程式,製作 crackme 的人可能是程式設計師,想測試一下自己的軟體保護技術,也可能是一位 cracker,想挑戰一下其它 cracker 的破解實力,也可能是一些正在學習破解的人,自己編一些小程式給自己破。

CrackMe簡稱CM。 程式下載地址:點選我

來源 <-點選檢視

編號 作者 保護方式
017 bjanes Serial(VB5)

 

 

 

工具 

x32dbg

VB Decompiler Pro

開始破解之旅

ON.1

爆破方式

首先使用x32dbg開啟017號程式,右鍵搜尋字串

找到了我們的整錯提示和錯誤提示的字串

進入錯誤提示字串,向上翻看

00404ED7 | 51                       | push ecx                                                |
00404ED8 | 52                       | push edx                                                |
00404ED9 | E9 A8000000              | jmp bjcm30a.404F86                                      |
00404EDE | BE 08000000              | mov esi,0x8                                             |  從該地址進入
00404EE3 | 8B1D CC104000            | mov ebx,dword ptr ds:[<&__vbaVarDup>]                   |
00404EE9 | B9 04000280              | mov ecx,0x80020004                                      |
00404EEE | 898D 20FFFFFF            | mov dword ptr ss:[ebp-0xE0],ecx                         |
00404EF4 | B8 0A000000              | mov eax,0xA                                             | A:'\n'
00404EF9 | 898D 30FFFFFF            | mov dword ptr ss:[ebp-0xD0],ecx                         |
00404EFF | 8D95 F8FEFFFF            | lea edx,dword ptr ss:[ebp-0x108]                        |
00404F05 | 8D8D 38FFFFFF            | lea ecx,dword ptr ss:[ebp-0xC8]                         |
00404F0B | 8985 18FFFFFF            | mov dword ptr ss:[ebp-0xE8],eax                         |
00404F11 | 8985 28FFFFFF            | mov dword ptr ss:[ebp-0xD8],eax                         |
00404F17 | C785 00FFFFFF 102A4000   | mov dword ptr ss:[ebp-0x100],bjcm30a.402A10             | 402A10:L"Wrong serial!"
00404F21 | 89B5 F8FEFFFF            | mov dword ptr ss:[ebp-0x108],esi                        |
00404F27 | FFD3                     | call ebx                                                |
00404F29 | 8D95 08FFFFFF            | lea edx,dword ptr ss:[ebp-0xF8]                         |
00404F2F | 8D8D 48FFFFFF            | lea ecx,dword ptr ss:[ebp-0xB8]                         |
00404F35 | C785 10FFFFFF D82B4000   | mov dword ptr ss:[ebp-0xF0],bjcm30a.402BD8              | 402BD8:L"Sorry, try again!"
00404F3F | 89B5 08FFFFFF            | mov dword ptr ss:[ebp-0xF8],esi                         |
00404F45 | FFD3                     | call ebx                                                |

此時來到了進入錯誤提示字串的入口處,找到00404EDE地址,右鍵 搜尋->當前模組->常數,在此輸入00404EDE搜尋到了兩個引用該字串的地方,分別下斷點

在輸入框內輸入任意資料,點選Check it 按鈕,程式停在了0040459F處,我們按F9執行程式聽到了00404941處此時說明0040459F處斷點是驗證輸入資料格式的,00404941處斷點才是驗證資料,我們單步F8向下

此時我們看到程式跳過了正確提示符,說明是在此處判斷我們將00404E30處改為NOP,F9執行

bingo ~ 程式破解成功 

ON.2

註冊機方式

我們使用VB Decompiler Pro開啟017號程式,發現相對於前兩個版本此處有了較大的變化

多出了hextode和hexfunc兩個函式,並不影響我們的分析,這兩個函式應該是轉16進位制的函式

我們點選進入Command1_Click,來到最下方看到了生成註冊碼的地方 

發現和我們的前兩個程式程式碼一樣

附上我們的註冊機程式碼

code = ''
for i in range(1, 10):
    a = i ^ 2
    code = code + str(a)[-1]
print(code)

得出結果為301674501我們輸入到輸入框內,點選Check it按鈕 

bingo ~ 破解成功

&n