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啦!!!

相关推荐
.Ayang2 小时前
SSRF漏洞利用
网络·安全·web安全·网络安全·系统安全·网络攻击模型·安全架构
.Ayang2 小时前
SSRF 漏洞全解析(概述、攻击流程、危害、挖掘与相关函数)
安全·web安全·网络安全·系统安全·网络攻击模型·安全威胁分析·安全架构
wxl7812272 小时前
如何使用本地大模型做数据分析
python·数据挖掘·数据分析·代码解释器
小尤笔记3 小时前
利用Python编写简单登录系统
开发语言·python·数据分析·python基础
FreedomLeo13 小时前
Python数据分析NumPy和pandas(四十、Python 中的建模库statsmodels 和 scikit-learn)
python·机器学习·数据分析·scikit-learn·statsmodels·numpy和pandas
风间琉璃""4 小时前
二进制与网络安全的关系
安全·机器学习·网络安全·逆向·二进制
Che_Che_5 小时前
Cross-Inlining Binary Function Similarity Detection
人工智能·网络安全·gnn·二进制相似度检测
穆友航5 小时前
PDF内容提取,MinerU使用
数据分析·pdf
恃宠而骄的佩奇6 小时前
i春秋-签到题
web安全·网络安全·蓝桥杯
follycat6 小时前
信息收集--CDN绕过
网络·安全·网络安全