没有合适的资源?快使用搜索试试~ 我知道了~
汇编拆炸弹 实验描述 二进制炸弹实际是由C语言源程序生成的可执行目标代码,主程序可参考bomb.c。运行时,会按次序提示用户输入3个不同的字符串。如果输入的字符串有误,炸弹就会“爆炸”,输出一条错误信息。必须通过对可执行程序反汇编和逆向工程判断应该是哪3个数据串,从而拆除“炸弹”。 说明 根据实验规则我应该做bomb8 ,run -t 3 -x 124 然后先是浏览bomb.c文件,该文件主要内容为main函数,主函数的参数列表是int argc, char *argv[],argc 是参数的个数,char *argv[] 是参数的具体内容,argv[0],是程序本身,所以argc的至少是1. 而run -t 3 -x 124就是向程序中转递参数,在bomb.c文件中有对应的转换函数,-t 3 就是总共需要拆3个炸弹,-x 124 就是需要拆的炸弹的编号 然后在Ubuntu中对可执行程序使用GDB Debug. 根据反汇编,设置断点等方法得到结果
资源推荐
资源详情
资源评论
实验描述
二进制炸弹实际是由 C 语言源程序生成的可执行目标代码,主程序可参考 bomb.c。运行时,会按
次序提示用户输入 3 个不同的字符串。如果输入的字符串有误,炸弹就会“爆炸”,输出一条错误
信息。必须通过对可执行程序反汇编和逆向工程判断应该是哪 3 个数据串,从而拆除“炸弹”。
说明
根据实验规则我应该做 bomb8 ,run -t 3 -x 124
然后先是浏览 bomb.c 文件,该文件主要内容为 main 函数,主函数的参数列表是 int argc, char
*argv[],argc 是参数的个数,char *argv[] 是参数的具体内容,argv[0],是程序本身,所以 argc 的至
少是 1.
而 run -t 3 -x 124 就是向程序中转递参数,在 bomb.c 文件中有对应的转换函数,-t 3 就是总共需要
拆 3 个炸弹,-x 124 就是需要拆的炸弹的编号
然后在 Ubuntu 中对可执行程序使用 GDB Debug.
根据反汇编,设置断点等方法得到结果
实验过程
第一个炸弹 phase_1 的反汇编内容:
分析:根据<string_not_equal>可大致知道第一个炸弹是判断字符串相等,结合题意可以知道是将
输入的字符串和内存中的一个字符串比较,调用该函数时,push 了两个值入栈,根据汇编子程序
设计,这两个值应该都是该函数的参数,而进行的字符串匹配,所以这两个值应该是两个将要进
行比较的字符串的首地址之类
资源评论
CodingLife99
- 粉丝: 1110
- 资源: 454
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功