BUUCTF 新手五道题

BUUCTF五道reverse新手题目

1.易怒

考点:基础题,shift+F12出字符串显示窗口

下载文件之后,是一个压缩包。正常解压。
打开之后,没有任何东西,输入字符之后,直接就退出。
PE查软件之后,64位,直接IDA打开。
然后shift+F12 显示出字符串窗口,flag直接出现。

在这里插入图片描述

2.reverse1

考点:

首先下载文件之后,又是一个压缩包,解压之后打开。
输入字符之后,直接退出了。
继续用PE查看软件的基本信息,64位,无壳。
用64位的IDA打开。
没有main函数。
直接shift+F12 查看字符串窗口。

在这里插入图片描述

找到一个好像是flag的{hello_world}直接复制加上flag,答案错误。
双击{hello_world}

在这里插入图片描述

可以看到在 sub_1400118C0处被引用了。
去找到 sub_1400118C0。
按F5之后,反编译。
疑惑:F5反编译不是只能在32位中的IDA中才可以么?如果在IDA64位中也可以的话,那怎么判断使用F5反编译。(后面知道了 在64位和32位中都可以反编译)

何时使用,判断依据是什么?

在这里插入图片描述

分析伪代码。

在if语句中,我们发现,如果str【2】 == o ,那么就会把它变成 0。
所有我们把{hello_world}中的o 变成 0
得到flag{hell0_w0rld}

总结:这个题,最关键的一步就是F5反编译查看伪代码。之前我一直以为在IDA64位中不能反编译。
增加了一个知识点。能大概看懂了,被哪个地址引用的。

3.reverse2

考点:跟reverse1 一样。主要F5反编译。

在这里插入图片描述

不是exe文件,用PE查看。

IDA64位打开。
继续shift+F12查看字符串窗口。

在这里插入图片描述
找到好像flag的字符串,双击。
在这里插入图片描述

好像是在主main函数中引用了。
找到主main函数,直接F5反编译。

在这里插入图片描述

接下来分析代码。
这里其实已经得到答案了,一开始没注意if语句中是没有{}的,但是后面那个*(&flag+i) = ‘ 1 ’,就是{}中的语句。
所以这里的意思是把flag中的 i 和 r 换成 1。
得到flag{hack1ng_fo1_fun}。

4.软件的内涵

考点:MD5解密?其实是考脑洞。。。注意结合他的题意和提示。

PE。

在这里插入图片描述

32位。
IDA打开。
找到_main_0函数,F5反编译。

在这里插入图片描述

这里就是软件打开之后,按Y提示,和N提示的if else判断语句。

在这里插入图片描述

答案应该在这一串字符串中。
一开始想的是这一串字符解密?
疑问:怎么判断是MD5解密。**
没想到这是MD5加密。

在这里插入图片描述

难道flag是 flag{全国人民震惊了} ?
不对。。。。。
又去其他函数搞了半天,越搞越复杂。
后面发现这是脑洞题。。。

在这里插入图片描述

最后flag其实就是那串字符串。
flag{49d3c93df25caad81232130f3d2ebfad}

5.新年快乐

考点:upx脱壳,upx -d xxxxx

在这里插入图片描述

在这里插入图片描述

根据上一题的经验,结合题意。。。。

首先是32位的,并且有UPX壳。
首先要脱壳。

在这里插入图片描述

之前脱过一次upx的壳。这次也是顺利一次操作成功。。。

在这里插入图片描述

shift+F12 查看字符串窗口,发现一串字符,是新年快乐的意思。
结合题意,flag就是一个字符串,再结合题目是新年快乐。
的壳。这次也是顺利一次操作成功。。。

[外链图片转存中…(img-5JTvwoDL-1626313229157)]

shift+F12 查看字符串窗口,发现一串字符,是新年快乐的意思。
结合题意,flag就是一个字符串,再结合题目是新年快乐。
flag{HappyNewYear!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值