拆弹实验-phase_1
准备
1、32位虚拟机
2、安装gdb
通关操作
首先,将bomb反汇编。
命令如下:
objdump -d bomb > 1.txt
找到phase_1函数:
可以看到,调用了strings_not_equal函数,找到strings_not_equal函数:
第10和13行调用了string_length函数,推测前面几行的寄存器内存放有目标字符串的地址。所以,我们可以在调用string_length函数处设置断点,然后查看前面几个字符串存放地址的内容。
我输入的字符串是test bomb,用disas命令反汇编。
用i r
命令查看寄存器内容,推测ebx内是一个字符串地址。查看一下。
test bomb是我先前输入的字符串,也可这么查看:
继续运行,查看寄存器内容:
推测edi或esi中有目标字符串:
或者这么做:
(gdb) x/s 0x403144
0x403144: "Verbosity leads to unclear, inarticulate things."
现在找到了目标字符串,通关操作如下:
当然,也可以用其他方法,一般找到的字符串有些特别,执行strings bomb
然后从一堆字符串里找也行。
可以看到,这一堆句子里Verbosity leads to unclear, inarticulate things.
有些特别,揣测其就是我要找的句子,事实证明就是它。
拆弹实验-phase_1相关推荐
- 计算机系统基础实验:二进制拆弹实验
一.实验目的: 学习并熟练使用 gdb 调试器和 objdump 理解汇编语言代码的行为或作用 提高阅读和理解汇编代码的能力 二.实验要求 实验共包括七个阶段,每个阶段考察机器级语言程序的不同方面,难 ...
- 二进制拆弹实验详解_Population Count算法-求二进制数中1的个数
所谓Population Count算法,即是指计算一个二进制数中1的个数的算法.具体来说,就是任意给定一个无符号整数N,求N的二进制表示中1的个数,比如N = 5(0101)时,返回2:N = 15 ...
- 二进制拆弹实验详解linux,拆解二进制炸弹
拆解二进制炸弹 一.实验目的 1.理解C语言程序的机器级表示. 2.初步掌握GDB调试器的用法. 3.阅读C编译器生成的x86-64机器代码,理解不同控制结构生成的基本指令模式,过程的实现. 二. 实 ...
- 二进制拆弹(炸弹炸掉了我的头发 T.T)
文章目录 所需要使用的调试工具 开始进入拆弹过程 phase_1 phase_2 pahse_3 phase_4 phase_5 phase_6 secret_phase 所需要使用的调试工具 1. ...
- 计算机系统ARM64拆除炸弹
一.内容简介 1.1 拆弹实验 拆弹实验是csapp课程的一个经典实验,实验共有六关(phase_1 ... phase_6),还有一个隐藏关卡(secret_phase).该实验与x86架构下的拆弹 ...
- 深入理解操作系统实验——bomb lab(phase_1)
实验内容及操作步骤: 一.实验基本内容: 二进制炸弹是作为一个目标代码文件,运行时会提示用户输入6个不同的字符串,如果其中任何一个不正确,炸弹就会爆炸,打印出一条错误信息.我们需要通过反汇编和逆向工程 ...
- 记ICS的lab2--bomb实验
(我真的是瞎tm投机取巧解开的bomb,我并不能保证帮上你什么忙,兄弟!) 实验总结: 首先这个实验真的是花了很多很多的时间了,逻辑硬伤,解得很慢.如果不是等到全部解完已经过去一周之后才写报告,我想我 ...
- CSAPP Lab2 实验记录 ---- Bomb Lab(Phase 1 - Phase 6详细解答 + Secret Phase彩蛋解析)
文章目录 Lab 总结博客链接 实验前提引子 实验需要指令及准备 Phase 1 Phase 2 Phase 3 Phase 4 Phase 5 Phase 6 Phase Secret(彩蛋Phas ...
- 国外计算机课程lab,计算机系统实验之bomblab
今天刚刚验收CSAPP实验3,趁着余温,记录一下这个实验,顺便回顾下CSAPP课程的相关知识. 实验目的 1.使用gdb工具反汇编出汇编代码,结合c语言文件找到每个关卡的入口函数.然后分析汇编代码,分 ...
- 计算机系统二进制炸弹实验报告,二进制拿炸弹实验报告完整版.doc
课程名称:计算机系统原理实验 实验课时:32课时 实验项目名称:BombLab二进制炸弹 实验材料:可执行文件bomb.源代码bomb.c.说明README 实验环境:Linux操作系统(安装虚拟机和 ...
最新文章
- php javascript wav波形绘制,PHP分析.wav文件并绘制png格式的波形图
- saltstack执行state.sls耗时长的坑
- .NET智能客户端(SmartClient)
- C++ 传指针还是引用?
- 视图 - 创建及修改视图
- cmake 找不到 macros_愿我们在彼此看不到的岁月里熠熠生辉
- eclipse3.4 SVN插件安装
- gis影像格式img转为ecw_医学影像图片格式
- html 图片防盗链,【反防盗链】介绍一个对付图片防盗链的方法
- SPFA ----模板 O(kE) (k一般不超过2)
- Spring Boot 2.2 正式发布,大幅性能提升 Java 13 支持 | CSDN 博文精选
- 鸿蒙系统更新法定年龄,超25000位开发者参赛,华为首届鸿蒙开发者创新大赛创意满满...
- 基于SSM的疫情数据统计分析系统
- aurelia_Aurelia历险记:创建自定义PDF查看器
- Python系列之:Dash从入门到精通系列一
- python批量打印word文件
- 华硕天选3笔记本电脑WiFi功能消失
- 无人驾驶全局路径规划之路径平滑(贝塞尔曲线)
- WARNING: disk usage in log directory [/home/.../.ros/log] is over 1GB. 问题解决办法
- el-tree修改前面箭头图标