二进制炸弹

本文详细记录了解决二进制炸弹大作业的过程,从第一步到隐藏关,通过反编译和使用gdb分析,逐一揭秘每个关卡的密码逻辑,涉及字符串比较、数组、递归等知识点。最终成功解除所有关卡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上学期期末的时候,老师布置了一个大作业,拆二进制炸弹。
开始拿到大作业时,很慌,迟迟不敢打开炸弹,因为一输错就炸了。到了截至日期的前2个星期,才开始,当时老师很早就给我们了,但是,比较怂,不敢拆。
网上有很多详解,老师上课时也给我们提过,hai,反汇编不扎实,看懂一段需要花很长时间,然后…就不想看。但是,没办法,大作业会计入成绩啊,就硬着头皮打开了。
在这里插入图片描述

但是,你千万不要怕,打开虚拟机,gdb就是了

(武藏)既然你诚心诚意的发问了,
(小次郎)我们就大发慈悲的告诉你!
(武藏)为了防止世界被破坏,
(小次郎)为了守护世界的和平;
(武藏)贯彻爱与真实的邪恶,
(小次郎)可爱又迷人的反派角色~~
(武藏)武藏!
(小次郎)小次郎!
(合)我们是穿梭在银河的火箭队!白洞,白色的明天在等着我们!!
(喵喵)就是这样~~~
(阿伯怪)Sonansi~~
在这里插入图片描述

它总共有七关,第七关是隐藏关,我们每个人拿到的炸弹是不一样的,但每关的知识点是一样的,接下来,一起去看看吧

第一步

反编译bomb,得到.txt.文件,建议复制出来保存到电脑,课件无聊的时候可以看看,哈哈哈哈在这里插入图片描述

tip

小伙伴们,一定要回gdb设断点哦,这样在自己有答案,但不确定的时候可以试一下,断点设置正确了,答案错了也不会boom哦

第一关

比较简单,和网上的一些参考差不多,是关于字符串的,根据参考的步骤,很容易就解出来了,我看的参考第一关基本都是字符串的

首先 gdb bomb,然后disas phase_1 得到第一关反汇编代码

当然你可以看你拷贝出来的,但是你下面要对某处进行调试,所以这里disas比较好

在这里插入图片描述
从0x08048eda中,得比较你输入的字符串和程序中预先设定的字符串是否相同,推测这个字符串语句movl $0x0804a210,通过gdb查看地址为0x0804a210的内容,运行测试答案是否正确,

相信你在看到这篇的时候已经看过其他很多优秀的资料了,所以从第一关开始,你要注意 $ 开头的语句,这些语句可是拆弹的密钥哦

在这里插入图片描述
bingo!

第二关

拆每一关前,都要进行的步骤:

首先 gdb bomb,然后disas phase_几(第几关) 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值