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能正确获取参数。
参考文献
《逆向工程核心原理》