BUUCTF RE 习题解答 wp

1.easyre

查找main找到main

flag{this_Is_a_EaSyRe}

2.reverse1

shift+F12

ctrl+x(交叉引用)查看是哪段函数调用了该字符串

点击“OK”进入该段程序,查看汇编代码

按“F5”查看伪C代码

"sub_1400111D1"是"printf"之类的输出函数。

随便找一个str2,双击点进去之后就找到了str2 '{hello_world}'

程序还没有分析完,继续往上分析

for循环是对str2做了一个转换的处理,str2里面ascii码为111的字符会被转换为ascii码为48的字符,在IDA中,选中数字按"R"键可以将数字转换为字符。

即str2中所有的"o"都被转换成了"0"

所以flag为 flag{hell0_w0rld}

3.reverse2

首先,拿到题目后,还是要用PE软件查一下软件的基本情况。

根据PE信息可以看到,该软件是用ELF写的,64位文件。

因此,采用IDA 64打开。

通过IDA生成的流程图可以找到关键字:FLAG。(依然觉得IDA很强大。)

找到关键字之后用F5查看伪代码。

通过按“R键”可知:105 = 'i'; 114 = 'r'; 49 = '1'。分析第25-26行,比较flag与s2的字符串,才能得到“this is thw right flag!”。

重新回到流程图。

观察右侧流程发现flag被放入了eax寄存器中,于是双击进去观察一下。

现在可以看到flag有一部分是“hacking_for_fun}”,为什么说是一部分呢?因为题目中说flag的格式应该是“flag{}”,因此合理推断,flag至少应该是“flag{hacking_for_fun}”,再次使用“R键”可知,78h = {;

于是我又往上看了一下,原来是flag中的“i”和“r”被替换成了“1”,那么最终的flag就是:flag{hack1ng_fo1_fun}。

flag{hack1ng_fo1_fun}

4.内涵的软件

其中红框里面很像flag

然后输入flag{49d3c93df25caad81232130f3d2ebfad}

5.hello word

.下载得到apk文件丢到apkida中找main函数

2.get flag

flag{7631a988259a00816deda84afb29430a}

下面是做的5个题目的位置,方便大家查看题目

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w1lD-P01Nt——Kerwin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值