逆向入门之Crackme001-Acid_burn(OD版本)
第一步:调用PEID工具进行查壳
更具上述显示可以知道没有壳,采用Dephi3.0书写
第二步:通过OllyDebug打开软件,模块的入口地址为0X0042FD68
点击F9进行运行程序,此时会弹出程序的欢迎界面
点击确定之后进入程序的主界面
第三步:查找失败提示的关键词“Sorry”
在弹出的窗口中点击Serial/Name按钮,然后随机输入信息后提示错误的信息,这里记住的关键词是“Sorry”
然后在汇编窗口右键,选择“搜索–>所有被引用的字符串” 如果是其他破解版本的OD可以使用右键中文搜索引擎进行查找
在弹出的窗口中,我们看到了很多的信息,其中一条就是“Good job dude = )”
第四步:选中执行的字符串右键鼠标,点击“在解释器中跟随”,或者直接进行双击,即可去往执行的汇编窗口
如果说字符串较多的话可以右键选择搜索文本输入“Good”定位字符串的位置
第五步:在JNZ跳转处按下F2增加断点,地址为0042FB03
JNZ指令指的是在结果不为0的时候进行跳转
第六步:继续在反汇编窗口右键鼠标,选择“搜索–>所有被引用的字符串”接着定位“Try Again”然后在反汇编界面进行跟随
找到JGE跳转按下F2增加断点,地址为0042FA5E
JGE表示的是大于或者等于进行转移
接着回到.EXE可执行文件中,我们随意输入用户名和序列号之后,点击“Sorry”提示,并且此时程序自动跳转到断点处
此时我们有两个断点
第七步:按下F8进行单步步过调试,注意CALL函数不进入,一直运行到下一个断点0X0042FB03处为止
第八步:选中该行,右键选择汇编,输入NOP指令,使用空指针进行替换
第九步:继续按下F8单步步过调试,当执行到0X0042FB18为止,会CALL函数弹出“Good job dude = ”对话框,实现了成功的绕过
第十步:按下F9运行程序,然后停到0X0042FA5A断点处,继续按下F9运行程序就会提示成功的对话框
第十一步:同样的方法查找第二个对话框的关键信息,然后在0X0042F4D5处增加断点
第十二步:我们点击“Serial”按钮,然后在弹出的对话框中点击“Check it Baby!”按钮后,会定位到0X0042F4D5跳转位置
第十三步:右键选择汇编,使用空指令进行替换
最终成功逆向该程序
第十四步:保存修改后的可执行文件
右键选择“编辑–>复制所有修改可执行文件”
点击可执行文件
随机输入进行执行
成功实现了我们所想的内容