攻防世界-RE-csaw2013reversing2

查看文件信息

无壳
在这里插入图片描述

IDA 静态分析

来到 main()函数处
在这里插入图片描述
我们可以看到 程序有个if 判断 进入sub_40102A()函数 发现没什么 IsDebuggerPresent()函数猜测应该是判断程序是否进入调试阶段

_debugbreak()   //在代码中引起断点 提示用户运行调试程序

我们进入 sub_40100()函数
在这里插入图片描述
他返回result 明显是加密后的flag 但是 他应该没有调用

那么我们就可以用OD动调就可以

动态调试

首先 我们需要先找到 弹窗跳转的指令
F8单步
在这里插入图片描述

我们可以看到 当程序执行到这个代码时 跳出弹窗
在这里插入图片描述
那么 我们可以在段首 下断点
在这里插入图片描述
F9程序重新运行,然后F8单步运行
在这里插入图片描述
我们可以修改Z的位置 为0(让他实现跳转),因为有调试检测机制,所以需要让他实现跳转
int3的位置 会跳转到无用的代码 所以我们需要将int3的位置nop掉
在这里插入图片描述
然后继续F8单步,jmp的位置也是一样的
在这里插入图片描述
在这里插入图片描述
F8继续单步
在这里插入图片描述
发现第一次弹窗没什么东西
注意 在下一个jmp 他会直接跳转到结束的位置 我们要直接把他nop掉
F8继续单步
那么就可以成功跳出 flag
在这里插入图片描述
那么 我们就可以用 QQ截图拾取文字获取flag
在这里插入图片描述

getflag

flag{reversing_is_not_that_hard!}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值