目录
CrackMe练习第18题
这是吾爱破解论坛160个新手练习的第18题,比较简单,非常适合新手练习用。填上正确的serial即可。如下图
逆向思路
- 随便输入一串文字,点击check按钮,弹出错误提示
- 错误提示框是一个messageBox模态框,模态框会阻断程序的运行逻辑,除非点击了该框上的按钮,程序才会继续向下执行。
- 打开OD,将程序拖入OD,运行程序,直到弹出上面的提示框。这时在OD中暂停程序的运行,Alt + K,打开调用堆栈窗口
4.在调用堆栈中找到用户代码模块的相关部分,双击定位到汇编代码的地方。
5.在失败弹窗的汇编代码上方附近,找到条件跳转 jnz,在上方附近都下断点调试。
6.很明显,字符串比较函数完成后,进行了跳转。下方是我们输入的,猜测上方的就是正确的密码
7.将其输入后验证是正确的。
小结
这里主要使用了弹出模态错误提示框MessageBox后,在OD中暂停并打开调用堆栈窗口定位汇编代码位置。这种方法只适合模态弹窗阻断程序运行的情形。当然也可以 Ctrl + G, 定位MessageBox API断点定位代码位置。这个程序是比较简单的,非常适合新手练习用。