buuctf reverse11

所用工具ida,exeinfope;

先用exeinfope进行查壳并确定其所用形式32位,还是64位,由于我使用的ida为8.4版本,所以不影响使用,但是我们还是要养成查壳的好习惯,可以帮助我们找到思路

下一步我们用ida打开64位ida打开程序 。

这时我们一般要找main函数,但是直接找需要慢慢看,我们可以直接通过遍历字符串去查找,应为一般main函数中会有flag等字样。

我们对其进行选中。

找到其对应的汇编代码,按x进行交叉应用(交叉应用等ida基础功能可以去自行查找学习)找到其对应代码

我们可以用Tab键反编译,查看伪代码。

我们可以发现代码分为两部分。上面的代码为加密代码

我们不难发现这部分代码的意思就是将字符中的o替换为0;然后看后半部分代码。

我们发现这是对我们的输入str1与str2做了一个比较。我们点击str2看看其代表的内容

发现str2存储了{hello_world};这就是flag。

但是在上面的代码中,对str2进行了修改,将str2中所有的o换成了0。

我们修改字符串最终得到正确的flag。

flag{hell0_w0rld}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值