abex’ crackme #1
abex‘ crackme程序是由彙編語言直接編寫,程序的運行效果如下:
點擊確定後:
Crack過程
調試
通過OD加載程序,可以發現程序很短,邏輯也很清晰,就是做了一個簡單的判斷然後根據判斷的結果進行不同的跳轉。
代碼分析
破解
直接讓函數跳轉至運行成功:
運行:
參數入棧
以MessageBoxA()函數爲例,展示參數入棧過程,通過OD我們可以看到:
轉換爲C代碼則爲:
MessageBox(NULL,"Make me think your HD is a CD-Rom.", "abex' 1st crackme", MB_OK|MB_APPLMODAL);
可以發現入棧順序正好相反,這是因爲棧是先進後出,這樣才能使得API能正確獲取參數。
參考文獻
《逆向工程核心原理》