reversing.kr 之 easy crack

下载链接(http://reversing.kr/download.php?n=1)

拿到题目后,发现是一个.exe程序。先放到PEiD里面检测一下,看其是否加壳。
PEiD
发现其是一个无壳的win32程序
先做一些试探,随意写一个密码
试探
抓住弹出的对话框中的关键字incorrect Password
用ollydbg将其打开
3
利用中文搜索
这里写图片描述
找到incorrect Password,点进去,找到相关函数。
这里写图片描述
记住00401135地址,并找到上一级跳转(根据红线往上找)
这里写图片描述
发现有四个条件判断语句的跳转地址为00401135,给他们分别下好断点
这里写图片描述
重新载入程序,并在第一个断点处停止
cmp byte ptr ss:[esp+0x5],0x61此时esp+0x5所指的地方为堆栈19FA75,发现这一块的数据是我们的输入数据12345678的ascii码形式(3132333435363738)
,将我们输入数据的第二个字符“2”与0x61(‘a’的ascii码)比较,所以第二个字符既是‘a’
这里写图片描述
因为我们输入数据与flag并不相同,所以程序将会跳转,我们可以修改相关标志位使其不要跳转,继续跑下去
这里写图片描述
到第二个断点处,esp+0xA == 19F7D6 ,第三个字符开始的地址,将我们的输入的第三个和第四个字符与“5y” 相比较,flag的第三个和第四个字符既是 “5y”
这里写图片描述
到第三个断点处,esp+10==19F7D8 ,是我们输入数据的第五个字符的起始位置,将我们输入数据的第五位往后的字符与“R3versing”相比较,所以五位往后的字符既是“R3versing”
这里写图片描述
到第四个断点处,esp+0x4 == 19F7D4,是我们输入数据的第一个字符的位置,将我们输入数据的第一位往后的字符与0x45 既 ‘E’相比较,所以第一位的字符既是‘E’
综上所述,我们将上面零散的flag碎片拼凑到一起既是完整的flag–>Ea5yR3versing
这里写图片描述
bingo!!!

猜你喜欢

转载自blog.csdn.net/qq_41532693/article/details/81780479