2024Spring> HNU-计算机系统-实验3-Bomblab-导引/答疑

前言

BombLab一定要花时间完成哦,对于期末卷面的提升和计算机系统的理解都非常重要。

导引

①文件目录概览

助教下发一个文件包,打开之后是这样的几个文件。

这几个文件解释如下

  • bomb:可执行文件,无法打开,我们主要研究的对象
  • bomb.c文件
  • bomb-quiet:暂时不需要关注
  • README文件
②反汇编

对bomb进行反汇编:在终端中输入以下指令

objdump -d bomb >m.txt

这一步是使用objdump对bomb可执行文件反汇编,并保存在txt文件中。

在这一步之后,文件夹中打开m.txt即可查看汇编代码。

③实验流程-概览

bomb可执行文件会读取你的输入,并与它的内部存储进行匹配。

该可执行文件内部有多段,如果你的输入能够匹配的话,程序就可以继续执行。直到这多段全部完成。这就是最终的成功。否则,如果中间任意一步出现问题,就会爆炸(即结束程序,终端输出bomb)。如下,我输入错误答案1使之引爆。

▲bomb可执行文件大致的执行逻辑可以在bomb.c中看到(bomb.c就是删去了各部分验证函数之后的主函数)

以phase_4为例,bomb读取你的输入,并与内部进行比对,如果正确就继续,否则调用bomb表示该步骤破译失败。

最终在你成功破译所有问题之后,效果大概是这样:

 ④实验流程-破译

以较为简单的phase_1为例:

汇编代码中,有一段这里调用了explode_bomb,而这是导致程序终止执行的原因,想办法让这句汇编代码不被执行。当然比较容易想到的是跟跳转结合起来,不跳转到这里或者跳转到别的地方即可。再注意到这里的<string_not_equal>似乎是某个字符串比较,可以想到bomb从我这里读入的密码是不是与字符串有关,从而继续研究下去……

⑤实验流程-验证

使用./bomb开始执行炸弹文件,然后逐个输入每题的密码,可以看到是否正确的反馈。

如这里反馈“phase 1 defused” 表示第一个通过了。

逐个这样验证下去直到最终结果。

▲如果出现permission denied的情况,使用chmod 777 bomb,改变可执行文件的权限即可。

⑥实验技巧-逐步调试 

使用gdb进行逐步调试,可以提升效率(有时想看如何跳转,有时不想重新开始)

下面开始逐步调试:

gdb -q bomb

若没有gdb,就安装gdb

成功安装后就可以逐步调试

gdb调试是基础,这里不再赘述。

⑦实验技巧-保存答案与快速验证

我不想每次都使用./bomb然后逐个输入答案,这样太烦了。

有没有什么办法能够快速验证我前几步是否正确?

可以将答案写在ans.txt中,一行写一道题目的答案即可。

然后使用./bomb ans.txt来运行,bomb会逐个读入文件中的每一行作为每一题的答案。

★期望

希望你能:

  • (重要)独立完成该实验
  • 熟练掌握汇编代码的阅读能力
  • 总结归纳对于阅读汇编的小技巧,小心得
  • 从该实验中收获乐趣

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/549380.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL中的存储过程详解(下篇)

使用语言 MySQL 使用工具 Navicat Premium 16 代码能力快速提升小方法&#xff0c;看完代码自己敲一遍&#xff0c;十分有用 拖动表名到查询文件中就可以直接把名字拉进来中括号&#xff0c;就代表可写可不写 目录 1. 查看存储过程 1.1 查看存储过程的状态 1.1.1 基础…

数据结构学习之路--深入探索栈的核心要点(附C源码)

哈喽~大家&#xff01;今天我们来学习栈的特别节目&#xff0c;精彩马上开始~ 目录 前言 一、栈 1 栈的概念 2 栈的结构 3 栈的实现 3.1 栈的定义 3.2 栈的初始化 3.3 入栈 3.4 出栈 3.5 取栈顶元素 3.6 判断栈是否为空 3.7 栈的大小 3.8 栈的销毁 二、源代…

InnoDB架构:磁盘篇

InnoDB架构&#xff1a;磁盘篇 InnoDB是MySQL数据库中默认的存储引擎&#xff0c;它为数据库提供了事务安全型&#xff08;ACID兼容&#xff09;、行级锁定和外键支持等功能。InnoDB的架构设计优化了对于读取密集和写入密集型应用的性能表现&#xff0c;是一个高度优化的存储系…

ctf.show_web13

上传一句话木马 1.php文件&#xff0c;显示 再改后缀为.jpg&#xff0c;显示错误文件大小 用dirsearch扫一下 备份文件.bak 下载文件源码 <?php header("content-type:text/html;charsetutf-8");$filename $_FILES[file][name];$temp_name $_FILES[file][tm…

C++项目 -- 负载均衡OJ(一)comm

C项目 – 负载均衡OJ&#xff08;一&#xff09;comm 文章目录 C项目 -- 负载均衡OJ&#xff08;一&#xff09;comm一、项目宏观结构1.项目功能2.项目结构 二、comm公共模块1.util.hpp2.log.hpp 一、项目宏观结构 1.项目功能 本项目的功能为一个在线的OJ&#xff0c;实现类似…

普通人做抖音小店真的能赚钱吗?可以,但更取决于个人

大家好&#xff0c;我是电商花花。 现在做抖音小店的基本上都是一些新商家&#xff0c;对于我们众多零基础的朋友来说&#xff0c;是期待也是一份挑战。 抖音小店作为一个充满机会的新兴平台&#xff0c;许多人都欣喜的投入其中&#xff0c;期望能够借此来改变自己的命运&…

【教程】ubuntu20.04 下配置 Charm-crypto 0.5 实验环境

目录 前言先决条件基本依赖安装准备好 gcc&#xff0c;make 和 perl准备好 m4&#xff0c;flex&#xff0c;bison 和 libssl-dev安装 Python3.x&#xff0c;pip3 和 pyparsing 安装 OpenSSL安装 GMP5.x安装 PBC安装 Charm-crypto5.0安装开发环境检验 Charm-crypto5.0 安装成功参…

跨国公司网络优化新选择:SD-WAN解决方案

随着全球化的加速推进&#xff0c;跨国企业纷纷实施跨国战略&#xff0c;然而&#xff0c;在各地建立分支机构、数据中心的过程中&#xff0c;往往面临网络性能差异大、数据传输效率低下等问题。在这样的背景下&#xff0c;SD-WAN成为跨国公司网络解决方案的优选。 跨国企业对于…

IO、存储、硬盘、文件系统相关常识

目录 IO 文件系统 文件在硬盘上的存储 IO IO&#xff0c;就是Input和Output&#xff0c;即输入和输出操作。我们的电脑可以通过网络下载文件&#xff0c;也可以通过网络上传文件。通过网络下载文件就是输入操作&#xff0c;上传文件就是输出。如何区分输入和输出呢&#xf…

imgcat 工具

如果经常在远程服务器或嵌入式设备中操作图片&#xff0c;要查看图片效果&#xff0c;就要先把图片dump到本地&#xff0c;比较麻烦。可以使用这个工具&#xff0c;直接在终端上显示。类似于这种效果。 imgcat 是一个终端工具&#xff0c;使用 iTerm2 内置的特性&#xff0c;允…

精益思维驱动人工智能革新:理论到实践的跃迁之旅

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已成为引领未来的关键力量。在这个变革的时代&#xff0c;如何将精益思维与人工智能相结合&#xff0c;推动AI从理论走向实践&#xff0c;成为行业内外关注的焦点。本文&#xff0c;天行健精益生产顾问将分享…

陇剑杯 流量分析 webshell CTF writeup

陇剑杯 流量分析 链接&#xff1a;https://pan.baidu.com/s/1KSSXOVNPC5hu_Mf60uKM2A?pwdhaek 提取码&#xff1a;haek目录结构 LearnCTF ├───LogAnalize │ ├───linux简单日志分析 │ │ linux-log_2.zip │ │ │ ├───misc日志分析 │ │ …

阿里云优惠券种类介绍及领取教程详解

随着互联网技术的快速发展&#xff0c;越来越多的企业和个人开始将业务和数据迁移到云端。阿里云作为国内领先的云服务提供商&#xff0c;为广大用户提供了丰富多样的云产品和服务。为了回馈用户&#xff0c;阿里云经常推出各种优惠活动&#xff0c;其中优惠券就是其中一种常见…

记录一下我hive连不上DataGrip的问题

用户名和密码都没问题&#xff0c;但报如下这个错误 原因&#xff1a;是因为我在linux上没启hiveserver2服务 解决&#xff1a; [atguiguhadoop102 hadoop]$ hiveserver2 which: no hbase in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8…

第19天:信息打点-小程序应用解包反编译动态调试抓包静态分析源码架构

第十九天 本课意义 1.如何获取到目标小程序信息 2.如何从小程序中提取资产信息 一、Web&备案信息&单位名称中发现小程序 1.国内主流小程序平台 微信 百度 支付宝 抖音头条 2.小程序结构 1.主体结构 小程序包含一个描述整体程序的app和多个描述各自页面的page …

RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升

CodeGeeX在升级到第三代模型时&#xff0c;就引入了RAG检索增强生成的能力。即模型会根据检索到的相关背景知识生成回答&#xff0c;大幅减轻生成内容的幻觉性。在CodeGeeX插件中&#xff0c;是通过侧边栏对话框中输入“repo”触发 RAG 技术。用户可以对开源代码仓库进行提问&a…

HG泄露(ctfhub)

工具准备&#xff1a;dirsearch、dvcs-ripper 网络安全之渗透测试全套工具篇&#xff08;内含安装以及使用方法&#xff09;_dvcs-ripper-CSDN博客 dvcs-ripper&#xff1a;一款perl的版本控制软件信息泄露利用工具&#xff0c;支持bzr、cvs、git、hg、svn... tree //树状…

突破编程_前端_SVG(使用 svg-pan-zoom 库进行平移与缩放)

1 svg-pan-zoom 概述 svg-pan-zoom 是一个轻量级、高性能且易于使用的 JavaScript 库&#xff0c;专为增强 SVG 图像的浏览体验而设计。它提供了平移和缩放功能&#xff0c;使用户能够无缝探索大型或复杂的 SVG 图形。这个库允许用户对SVG图像进行交互操作&#xff0c;包括缩放…

App怎么创建百度百科词条

创建一个App的百度百科词条可以帮助提高App的知名度和权威性&#xff0c;以下是详细的创建步骤和注意事项&#xff1a; 创建步骤 注册百度账号&#xff1a;首先&#xff0c;你需要有一个百度账号&#xff0c;如果没有&#xff0c;你需要按照步骤申请一个&#xff0c;这一步骤是…
最新文章