reversing.kr 之 easy crack

本文介绍了一个.exe文件的逆向破解过程,通过OllyDbg调试器定位关键函数,逐步解析出正确的密码。从输入验证流程入手,分析了四个条件判断语句对应的密码字符,最终得到了完整的密钥。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载链接(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!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值