逆向破解之160個CrackMe —— 026
阿新 • • 發佈:2019-09-04
CrackMe —— 026
160 CrackMe 是比較適合新手學習逆向破解的CrackMe的一個集合一共160個待逆向破解的程式
CrackMe:它們都是一些公開給別人嘗試破解的小程式,製作 crackme 的人可能是程式設計師,想測試一下自己的軟體保護技術,也可能是一位 cracker,想挑戰一下其它 cracker 的破解實力,也可能是一些正在學習破解的人,自己編一些小程式給自己破。
CrackMe簡稱CM。 程式下載地址:點選我來源 <-點選檢視
編號 | 作者 | 保護方式 |
026 | Colormaster | Name/Serial(VB5) |
工具
x32dbg
KeyMake
開始破解之旅
ON.1
爆破方式
首先使用x32dbg開啟026號程式,右鍵搜尋字串
這裡我們看到了正確資訊提示符,地位為00403745
進入該地址,向上翻看來到最近的一個跳轉處
該跳轉當暫存器ZF=0時發生跳轉,跳轉到正確提示資訊,我們將004036EB地址處的JE修改為NOP,F9執行,在輸入框內輸入任意資料
bingo ~ 破解成功
ON.2
記憶體補丁方式
繼續向上翻看程式碼,此時我們在x32dbg中看到一個字串對比函式
0040369C | 8D4D C4 | lea ecx,dword ptr ss:[ebp-0x3C] | 0040369F | FFD6 | call esi | 004036A1 | 50 | push eax | 在此處下斷點 004036A2 | FF15 74104000 | call dword ptr ds:[<&__vbaStrCmp>] | 字串對比函式 004036A8 | 8BF0 | mov esi,eax | 004036AA | 8D45 C4 | lea eax,dword ptr ss:[ebp-0x3C] | 004036AD | 8D4D D8 | lea ecx,dword ptr ss:[ebp-0x28] | 004036B0 | 50 | push eax | 004036B1 | 8D55 C8 | lea edx,dword ptr ss:[ebp-0x38] | 004036B4 | 51 | push ecx | 004036B5 | F7DE | neg esi | 004036B7 | 8D45 CC | lea eax,dword ptr ss:[ebp-0x34] | 004036BA | 52 | push edx | 004036BB | 8D4D D4 | lea ecx,dword ptr ss:[ebp-0x2C] | 004036BE | 50 | push eax | 004036BF | 1BF6 | sbb esi,esi | 004036C1 | 8D55 D0 | lea edx,dword ptr ss:[ebp-0x30] | 004036C4 | 51 | push ecx | 004036C5 | 46 | inc esi | 004036C6 | 52 | push edx | 004036C7 | 6A 06 | push 0x6 | 004036C9 | F7DE | neg esi | 004036CB | FF15 C4104000 | call dword ptr ds:[<&__vbaFreeStrList>] | 004036D1 | 8D45 B0 | lea eax,dword ptr ss:[ebp-0x50] | 004036D4 | 8D4D B4 | lea ecx,dword ptr ss:[ebp-0x4C] | 004036D7 | 50 | push eax | 004036D8 | 8D55 B8 | lea edx,dword ptr ss:[ebp-0x48] | 004036DB | 51 | push ecx | 004036DC | 52 | push edx | 004036DD | 6A 03 | push 0x3 | 004036DF | FF15 20104000 | call dword ptr ds:[<&__vbaFreeObjList>] | 004036E5 | 83C4 2C | add esp,0x2C | 004036E8 | 66:85F6 | test si,si | 004036EB | 0F84 AB000000 | je colormaster.40379C | 004036F1 | 8B35 D4104000 | mov esi,dword ptr ds:[<&__vbaVarDup>] | 004036F7 | B9 04000280 | mov ecx,0x80020004 |
我們在004036A1處下斷點,F9執行,點選check it按鈕,此時停在了我們的斷點處
0040369A | 8BD0 | mov edx,eax | edx:L"55493CDCDD8599459-CM", eax:L"55493CDCDD8599459-CM" 0040369C | 8D4D C4 | lea ecx,dword ptr ss:[ebp-0x3C] | [ebp-3C]:L"55493CDCDD8599459-CM"" 0040369F | FFD6 | call esi | 004036A1 | 50 | push eax | eax:L"55493CDCDD8599459-CM" 004036A2 | FF15 74104000 | call dword ptr ds:[<&__vbaStrCmp>] | 004036A8 | 8BF0 | mov esi,eax | eax:L"55493CDCDD8599459-CM" 004036AA | 8D45 C4 | lea eax,dword ptr ss:[ebp-0x3C] | [ebp-3C]:L"55493CDCDD8599459-CM" 004036AD | 8D4D D8 | lea ecx,dword ptr ss:[ebp-0x28] | [ebp-28]:L"1234"3CDCDD8599459-CM" 004036B0 | 50 | push eax | eax:L"55493CDCDD8599459-CM" 004036B1 | 8D55 C8 | lea edx,dword ptr ss:[ebp-0x38] | [ebp-38]:L"55493CDCDD8599459"CM" 004036B4 | 51 | push ecx | ecx:&L"55493CDCDD8599459-CM"
此時我們看到eax處有一處可疑字串,我們將該字串填入Serial框內,點選按鈕
bingo ~註冊碼確認無疑
開啟我們的KeyMake,新增以下資料
生成...
開啟我們生成的註冊機,輸入任意Name,點選按鈕
叮咚~ 註冊碼彈了出來,破解成功
&n