网络安全实验 反汇编 逆向实验
创始人
2025-05-28 14:01:20

文章目录

    • 要求
    • lab1
    • lab2
    • lab3
    • lab4

因为当时自己做实验的时候出现了很多疑问不会解决,在网上看到了一位大佬解决了这些问题,就把我的实验解决方法也发上来,希望有不会的同学可以通过博文理解实验内容,同时能够熟练掌握这些知识。

要求

lab1 包含 4 个题目,需要对 4 个程序进行逆向。逆向结果为一个 flag 开头的可见字符串,正则形式为: flag{[0-9a-zA-Z]+}。
其中 lab1-1 是简单的逆向入门用于熟悉软件和环境,lab1-2 和 lab1-3 涉及到数学计算,需要通过基本的数学运算性质进行逆计算得出 flag,lab1-4 需要对原有的二进制进行一些修改,之后才能进行正常的输入输出。
每个程序在输入正确的 flag 后会显示 good,如果 flag 不正确将会输出 error flag。

lab1

在编译器网站(Compiler Explorer)对简单的 C 语言进行编译后,我发现字符串的编译结果是反着的。比如某个字符串是“abc”,把编译出来的十六进制字符转字符串后,得到的结果是“cba”。
在 IDA 反汇编得到十六进制数如图所示,进行十六进制转文字,解出的是反着的正确答案。将结果倒置即可得到正确结果,为“flag{Welcome_t0_security_c0urse}”。

在这里插入图片描述

lab2

对文件进行反汇编,得到伪代码如图。大概意思为 “a[i]^i=” 预先存进程序的字符, ^是按位异或。
如果当前为第一轮,假设第一个数为 x,为八位二进制数,x 和 0000 0000 进行异或,结果是 0x66(0110 0110),可计算出 x 为 0110 0110,对每一位进行计算,即可通关。目标字符已经给出,通过计算可以得出最后结果是:“flag{xor_is_reversible}”。

for ( i = 0; i <= 22; ++i )
{if( (i^v31[i]) != *(&v8 + i) ){	puts("error flag");exit(0);}
}
puts("Good");

在这里插入图片描述

lab3

将文件放入 Ghidra,根据反汇编的伪代码,可以得出目标字符为“flag{equation}”。

在这里插入图片描述

lab4

查看反汇编的伪代码,发现 main 函数内没有内容,查看源文件,发现函数入口处应该是 55,但是文件里是 C3,在 IDA 里对文件进行修改,如图 8,得到 showflag 函数。
函数大致意思为 a[i](输入的字符)先和 i(当前的轮次)异或,得到的结果再 i 相加,最后和程序预先输入的字符比较。如果在第一轮,假设需要的第一个字符为 x,将二进制 x 和 0000 0000 进行异或,再加0000 0000 即为之前存进来的十六进制 66,即 0110 0110,因此 x 为 0110 0110,换为字符即“f”。
因为由 lab1-1 得出反汇编出的伪代码中的字符串都是倒着的,因此读的时候应该反着来,比如 local_28 的正确破解方式应该是“66 6e 65 67 83 7a 6d 7a”以此类推。最后结果为“flag{patch_your_file}”。

在这里插入图片描述
在这里插入图片描述

for ( i = 0; i <= 20; ++i )
{if(i+(i^*(_BYTE *)(i + a1)) != *((_BYTE*)&v3 + i) ){puts("error");return *MK_FP(__FS__, 40LL) ^ v6;}
}

相关内容

热门资讯

83、NeRFshop: In... 简介 主页:https://repo-sam.inria.fr/fungraph/ne...
车辆违章查询电话是多少(车辆违... 本篇文章极速百科给大家谈谈车辆违章查询电话是多少,以及车辆违章查询客服电话是多少对应的知识点,希望对...
5寸照片是多大尺寸(5寸照片是... 本篇文章极速百科给大家谈谈5寸照片是多大尺寸,以及5寸照片是多大尺寸的对应的知识点,希望对各位有所帮...
日产精品卡2卡3卡4卡怎么看(... 今天给各位分享日产精品卡2卡3卡4卡怎么看的知识,其中也会对日产sim卡进行解释,如果能碰巧解决你现...
上海通用所有车标,上海通用汽车... 今天给各位分享上海通用所有车标,上海通用汽车有几种标志的知识,其中也会对上海通用汽车的车标进行解释,...
数据挖掘与分析应用刷题笔记2 数据挖掘与分析应用刷题笔记2 2022找工作是学历、能力和运气的超强结合体,遇到寒冬&...
雷克萨斯gx怎么样(2020款... 今天给各位分享雷克萨斯gx怎么样的知识,其中也会对2020款雷克萨斯gx进行解释,如果能碰巧解决你现...
国内4大豪车俱乐部,个个都是豪... 今天给各位分享国内4大豪车俱乐部,个个都是豪车一堆,令人眼花缭乱的知识,其中也会对豪车俱乐部是什么意...
自驾游海边哪里好玩?自驾游去浙... 今天给各位分享自驾游海边哪里好玩?自驾游去浙江海边哪好玩?的知识,其中也会对浙江去海边玩去哪里进行解...
2023北京限号轮换图,202... 本篇文章极速百科给大家谈谈2023北京限号轮换图,2023年北京新一轮限号,以及21年3月北京限号对...
vi 编辑命令 命令Summary: movement keysHere's a recap of the move...
(十六)qt creator中... 文章目录1.Qt使用qmake的工程添加OpenCV库2.Debug时常见问题 欢迎访问个人网络日...
X99主板2011-3接口E5... 最近发现精粤出了好多X99的主板,博主从intel 网站整理了X99主板2011-3接...
工信部认可老年代步车目录,十大... 本篇文章极速百科给大家谈谈工信部认可老年代步车目录,十大名牌老年代步电动四轮...,以及国家工信部公...
XNV为什么不挂本田logo?... 今天给各位分享XNV为什么不挂本田logo?东风本田XNV优缺点有哪些的知识,其中也会对东风本田xn...
细节有改动试驾2013款宝骏6... 本篇文章极速百科给大家谈谈细节有改动试驾2013款宝骏630自动型,以及2013款宝骏630舒适型对...
jetson-xavier-n... 1 sdkmanager刷写系统sdkmanager启动失败使用sdkmanager刷机时可能会遇到...
车轮为什么是圆形的(车轮为什么... 今天给各位分享车轮为什么是圆形的的知识,其中也会对车轮为什么是圆形的车轴应该装在什么位置进行解释,如...
车载以太网 - 测试用例设计 ... 关于Alive check和Mode Check相关的介绍前面的文章已经有了比较清晰的介绍,测试用例...
【Linux】信号常见概念 文章目录信号入门生活中的信号技术应用角度的信号signal函数注意事项信号的概念信号的产生信号的记录...
英菲尼迪Q50英菲尼迪Q50最... 今天给各位分享英菲尼迪Q50英菲尼迪Q50最新报价-图片-参数的知识,其中也会对英菲尼迪q50官方报...
如何看中国超燃冲压发动机获得突... 今天给各位分享如何看中国超燃冲压发动机获得突破,地面试验实现连续...的知识,其中也会对中国超燃冲压...
兰博基尼雷文顿多少钱兰博基尼雷... 本篇文章极速百科给大家谈谈兰博基尼雷文顿多少钱兰博基尼雷文顿贵吗?,以及兰博基尼雷文顿跑车图片对应的...
苦恼的反义词(苦恼的反义词最佳... 今天给各位分享苦恼的反义词的知识,其中也会对苦恼的反义词最佳答案进行解释,如果能碰巧解决你现在面临的...
命令行工具检索命令find 和... grep检索文件包含的内容的命令使用 grep 命令可以检索文件包含的内容,例如&#x...
第一章:职场入门:程序员如何开... 作为一名Java程序员,我们深知在当今激烈的市场竞争中,如何开始职业生涯是至关重要的。本章将从多个方...
C语言:文件的读写(fputc... 近段时间,在重新学习一下C语言程序设计,学习到了文件读写这一章节,觉得这方面的知识较复杂,于是把其中...
清华大学土木工程系包含哪些专业... 今天给各位分享清华大学土木工程系包含哪些专业的知识,其中也会对清华大学土木工程系包含哪些专业课程进行...
秦国卫鞅怎么死的(卫鞅最后有没... 今天给各位分享秦国卫鞅怎么死的的知识,其中也会对卫鞅最后有没有娶秦国公主进行解释,如果能碰巧解决你现...
美利达车架号(美利达车架号能查... 今天给各位分享美利达车架号的知识,其中也会对美利达车架号能查出什么信息进行解释,如果能碰巧解决你现在...