第一次分析一个CrackMe
本帖最后由 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,不过这样分析软件能让逆向基础更加扎实,我十分赞同海东老师的说法
另外一个提示信息可以把这几个nop掉
0040122D 90 nop
0040122E 90 nop
0040122F 90 nop
00401230 90 nop
00401231 90 nop
xman100 发表于 2021-7-8 20:20
另外一个提示信息可以把这几个nop掉
0040122D 90 nop
0040122E 90 nop
...
nop大法好{:1_921:} 感谢楼主分享 学习学习,!! 厉害,学习了。。。。 萌新路过支持一下{:301_997:} 感谢分享,学习了一波,谢谢楼主 萌新路过,学习一下 学习了,,谢谢分享 感谢分享
页:
[1]
2