本帖最后由 niucaidi 于 2021-7-4 01:44 编辑
">记,第一次破解
">目前学习的教程来自滴水海东,视频来源为B站
- 这是教程第六集的作业,要求分析一个海东老师提供的CRACKME
<div align=center>
- 视频里说,因为有MessageBox,所以第一步可以下Windows API断点,命令是
bp MessageBoxA
<div align=center>
接下来点击od的运行,让程序跑起来,再点击Help-Register进入注册界面
<div align=center>
<div align=center>
随便输入注册信息,此时程序会在断点处停下,注意ESP,其当前值代表Call调用前压入的返回地址
<div align=center>
右键点击该地址,选择在反汇编窗口中跟随 ,在跳转到的地址下断,并且此处注释部分可以看到很明显的提示
<div align=center>
再次让程序跑起来,停在断点处,我认为这一部分应该是一个函数,因为头部有retn,尾部也有retn,我觉得很像一个函数的样子,这只是个人浅薄的见解,并且上方有明显的提示,如此一来我们又可以将头部retn 的下一行下断,令程序运行到这个位置,并且观察此时的ESP,认为这就是Call调用前的返回地址,右键反汇编跟随,来到下图处
<div align=center>
经验证,此处就是关键跳转,将jz修改为jmp即可
其实这个软件如果用纯数字输入注册信息还会再跳出一个失败信息,用同样的思路也可以将其解决
其实更简单的是搜索字符串,毕竟是个很简单的CrackMe,不过这样分析软件能让逆向基础更加扎实,我十分赞同海东老师的说法
|