之前学逆向感觉学得一踏糊涂,这阶段好多师傅带我,一定要好好学,重新开始,认真学习。
来看打开可执行文件:
用ollydbg载入,单步执行后停到了入口点:
分析入口点,并没有加壳,于是F9执行程序,跳出了程序执行框,随便输入些字符,出现了错误框的提示:
F12暂停程序后Alt+k查看调用栈:
补充:
MessageBox指的是显示一个模态对话框,其中包含一个系统图标、 一组按钮和一个简短的特定于应用程序消息,如状态或错误的信息。消息框中返回一个整数值,该值指示用户单击了哪个按钮。
在图中高亮处点击右键,选择show call进入程序段,发现4个判断语句与密码有关:
在以上4个跳转区以及004010b0地址处的比较命令处下断点后,重新运行,此时输入
程序运行到第一个断点处:
得到的信息是第二位与a比较,f8继续执行,为了不让jnz跳转改变z为1,如图:
f8一直单步执行到如图:
查看椎栈34与5y比较
继续执行:
补充爆破方法:
遇到跳转将z改为1,一直向下执行:
如图是最后9位密码,继续向下执行,遇到跳转z改为1,得到第一位的值:0x45=E
所以 得到密码:
Ea5yR3versing
如图,我们成功了:
用过了ollydbg,我们用ida来分析一下:
直接定位到main函数:
分析函数算法:
v3=a,v4=a5y,v5=aR3versing,string=E
拼接后得到flag:Ea5yR3versing