BUUCTF靶场 [reverse]easyre、reverse1、reverse2

工具:

DIE:下载:https://download.csdn.net/download/m0_73981089/89334360
IDA:下载:https://hex-rays.com/ida-free/

新手小白勇闯逆向区!!!

[reverse]easyre

首先查壳,用DIE看程序信息,看到无壳且是64位的程序,用其相应的IDA打开

用IDAx64打开,查看源码,点开主函数(main)

发现界面是直接由flag字眼,直接点开

便得到flag

[reverse]reverse1

拿到文件,先查壳,用DIE根据下图,可以判断该程序无壳,且程序也是64位

将其用IDA64位打开进行反汇编

看主函数(main)这里是main 0,打开便看到汇编码显眼的flag字眼

还看到这个{}非常像flag

但是不是

回滚到看到显眼flag字眼:

我是小白😳,看的有点困难😅,直接再此界面看伪代码(按F5键)

有点编程小基础应该能猜到红色框是输出printf(print),黄色框框应该是输入scanf

而Str1是我们所需要输入的内容,点开Str2,发现是 {hello_world}字符串

再分析上端代码

大概意思是:

用for循环来遍历Str2这个字符串,如果超过Str2长度则跳出循环,如果再Str2能找到ASCII码为"111",则把其替换为ASCII码为"48"的字符

如果不记得ASCII码可以选中ASCII码键盘按"R"键,会显示ASCII对应的字符,如图

那这样就大概知道了,只需要把Str2" {hello_world}"的o替换为数字0,则是本题的flag

提交成功啦!!!

[reverse]reverse2

刚开始我将文件用010 editor打开,发现了一串很像flag的字符串

输进去,我以为我以为意外解,哇趣,不对,骗人!

仔细想想,这是一道逆向题,不用任何相关文件就能解出flag概率还是很小的 😳

回归正题:

老规矩,先查壳,用DIE工具,没有壳,程序为64位

还是用IDAx64位打开,进行反汇编

还是先查看主函数的汇编代码,大致看了一下,也看到flag的字眼

(看不懂汇编代码的可以跟我操作哦)所以我们先查看伪码(按F5),慢慢分析

s2是我们需要输入的但是flag我们不知道,点击flag进行查看:

看来flag是**{hacking_for_fun}**,等等先别急,我们代码还没有分析呢

输入输出由一些些C语言基础或者C++基础应该是可以看懂的,这里就不过多解释啦

直接看条件

大概意思是:

如果pid不为空,则会执行waitpid这个函数(此不是我们需要重点抓住的),看后边,如果pid为空则for循环遍历flag这个字符串,如果flag上的字符加上从0到其长度的等于ASCII码为105或者114,则改为ASCII码为49

(是不是上一题很像啊,嘻嘻~)

如果不知道ASCII码是不是可以选其ASCII码然后按(R)键

更加一目了然啦!!!

所以最终的flag是将原本的flag"{hacking_for_fun}"所含有"i" 和 "r"字符替换为数字"1",这样就可以拿到本题的flag啦!!!

相关推荐
Clockwiseee9 小时前
php伪协议
windows·安全·web安全·网络安全
Altair澳汰尔13 小时前
数据分析和AI丨知识图谱,AI革命中数据集成和模型构建的关键推动者
人工智能·算法·机器学习·数据分析·知识图谱
Lspecialnx_14 小时前
文件解析漏洞中间件(iis和Apache)
网络安全·中间件
学习溢出15 小时前
【网络安全】逆向工程 练习示例
网络·安全·网络安全·渗透测试·逆向工程
qingyunliushuiyu18 小时前
企业为何需要可视化数据分析系统
数据挖掘·数据分析·数据采集·数据可视化·数据分析系统
孤独的履行者18 小时前
入门靶机:DC-1的渗透测试
数据库·python·网络安全
Blankspace学19 小时前
Wireshark软件下载安装及基础
网络·学习·测试工具·网络安全·wireshark
chenchihwen20 小时前
数据分析时的json to excel 转换的好用小工具
数据分析·json·excel
CVE-柠檬i1 天前
Yakit靶场-高级前端加解密与验签实战-全关卡通关教程
网络安全