CrackMe —— 025
160 CrackMe 是比較適合新手學習逆向破解的CrackMe的一個集合一共160個待逆向破解的程序
CrackMe:它們都是一些公開給別人嘗試破解的小程序,制作 crackme 的人可能是程序員,想測試一下自己的軟件保護技術,也可能是一位 cracker,想挑戰一下其它 cracker 的破解實力,也可能是一些正在學習破解的人,自己編一些小程序給自己破。
CrackMe簡稱CM。
編號 | 作者 | 保護方式 |
025 | CodeZero | Nag,Serial(VB5) |
工具
x32dbg
VB Decompiler Pro
開始破解之旅
ON.1
第一步我們要去除NAG
首先使用VB Decompiler Pro打開我們的025號程序
我們點擊Code ->Form1->Form_Load 這里是加載NAG窗口的地方,點進進入看見了反編譯的VB代碼
Private Sub Form_Load() '405905 Dim Me As Me loc_00405948: Me.Visible = False loc_00405986: Form2.Visible = True End Sub
在函數名后面有一串數字,該數字是函數的入口地址,我們在x32dbg里跳轉到該地址
使用x32dbg打開025號程序,右鍵 轉到->表達式\CTL+G,輸入405905
點擊確定
此時來到了我們的函數入口處
我們將push ebp修改為ret,F9運行
bingo~ NAG窗口成功去除
ON.2
爆破方式
右鍵在x32dbg中搜索字符串
看到了我們的正確信息提示符,地址為40577B,雙擊進入該地址
向上翻看,來到最近的一個跳轉處,發現該跳轉跳過了正確提示信息來到了錯誤提示信息
0040576B | 8D4D C4 | lea ecx,dword ptr ss:[ebp-0x3C] | 0040576E | 74 2A | je codezero.1.40579A | 程序跳轉處 00405770 | E8 CDB9FFFF | call <JMP.&__vbaVarDup> | 00405775 | 8D55 94 | lea edx,dword ptr ss:[ebp-0x6C] | 00405778 | 8D4D D4 | lea ecx,dword ptr ss:[ebp-0x2C] | 0040577B | C745 9C B4264000 | mov dword ptr ss:[ebp-0x64],codezero.1.4026B4 | 4026B4:L"Congratulations! you've really made it :-)" 00405782 | 8975 94 | mov dword ptr ss:[ebp-0x6C],esi | 00405785 | E8 B8B9FFFF | call <JMP.&__vbaVarDup> | 0040578A | 8D45 A4 | lea eax,dword ptr ss:[ebp-0x5C] | 0040578D | 50 | push eax | 0040578E | 8D45 B4 | lea eax,dword ptr ss:[ebp-0x4C] | 00405791 | 50 | push eax | 00405792 | 8D45 C4 | lea eax,dword ptr ss:[ebp-0x3C] | 00405795 | 50 | push eax | 00405796 | 6A 40 | push 0x40 | 00405798 | EB 28 | jmp codezero.1.4057C2 | 0040579A | E8 A3B9FFFF | call <JMP.&__vbaVarDup> | 0040579F | C745 9C 10274000 | mov dword ptr ss:[ebp-0x64],codezero.1.402710 | 402710:L"Invalid unlock code, please try again." 004057A6 | 8D55 94 | lea edx,dword ptr ss:[ebp-0x6C] | 004057A9 | 8D4D D4 | lea ecx,dword ptr ss:[ebp-0x2C] |
我們將0040576E處JE修改為NOP,F9運行,在輸入框內輸入任意字符
bingo ~ 破解成功
追碼方式
在次來到我們搜索字符串處,我們看到一個可疑的字符串“55555”
我們在輸入框內輸入55555,點擊Check按鈕
bingo ~ 破解成功