20145217《信网络对抗》逆向与BOF基础实践
20145217《信网络对抗》逆向与BOF基础实践
内容:
一、简单机器指令,汇编语言
1.'objdump -d xxx|more'反汇编命令查看机器代码,'cat'显示文件内容,'xxd'16进制显示,'cp'复制文件,'mkdir'新建文件夹等等
2.栈用于实现函数或过程调用,相关寄存器'BP、FP、SP',相关操作'PUSH'压栈、'POP'弹栈
3.函数调用过程的三个步骤:'prologue'保存当前的栈基址(ebp);'call': 调用参数和返回地址('eip')压栈,跳转到函数入口;'return': 恢复调用者原有栈
4.部分指令机器码
①NOP:NOP指令即“空指令”。执行到NOP指令时,CPU什么也不做,仅仅当做一个指令执行过去并继续执行NOP后面的一条指令。(机器码:90)
②JNE:条件转移指令,如果不相等则跳转。(机器码:75)
③JE:条件转移指令,如果相等则跳转。(机器码:74)
④JMP:无条件转移指令。段内直接短转Jmp short(机器码:EB)段内直接近转移Jmp near(机器码:E9)段内间接转移Jmp word(机器码:FF)段间直接(远)转移Jmp far(机器码:EA)
⑤CMP:比较指令,功能相当于减法指令,只是对操作数之间运算比较,不保存结果。cmp指令执行后,将对标志寄存器产生影响。其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果。
二、缓冲区溢出攻击
- 当调用函数时,'Call'指令会将返回地址('Call'指令下一条指令地址)压入栈,'Ret'指令会把压栈的返回地址弹给EIP
栈溢出攻击的原理
- 通过缓冲区溢出修改栈中的返回地址,当函数调用返回,EIP获得被修改后的返回地址,并执行'Shellcode'
三、两个实验
1.直接修改机器指令,改变程序执行流程
(1)反汇编查看'pwn1'的机器代码

(2)'main'函数,注意'call'指令行

(3)'getshell'函数的地址

(4)计算偏移量

(5)'vim'编辑器打开

(6)转成16进制

(7)查找命令段

(8)修改,insert可以切换输入模式


(9)改好了以后编码模式再还原回去

(10)运行下结果如下图

2.'Linux'栈溢出/'Shellcode'
(1)gdb调试pwn2,测试溢出长度



(2)用脚本语言建立一个文件,用'cat'显示文件内容,效果如下


20145217《信网络对抗》逆向与BOF基础实践的更多相关文章
- 20145217《网络对抗》 Web安全基础实践
20145217<网络对抗> Web安全基础实践 一.实践任务 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 二.实验后回答问题 (1)SQL注入攻击原理,如 ...
- 网络对抗实验一 逆向及Bof基础实践
网络对抗实验一 逆向及Bof基础实践 一.实验目的 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. ...
- 20145308 《网络对抗》 逆向及BOF基础实践 学习总结
20145308 <网络对抗> 逆向及BOF基础实践 学习总结 实践目的 通过两种方法,实现程序能够运行原本并不会被运行的代码 实践原理 利用foo函数的Bof漏洞,构造一个攻击输入字符串 ...
- 20145206邹京儒《网络对抗》逆向及Bof基础实践
20145206邹京儒<网络对抗>逆向及Bof基础实践 1 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:ma ...
- 20145216《网络对抗》逆向及BOF基础实践
20145216<网络对抗>逆向及BOF基础实践 1 逆向及Bof基础实践说明 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常执行流程是:main调用foo函 ...
- 20145327 《网络对抗》逆向及BOF基础实践
20145327 <网络对抗>逆向及BOF基础实践 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任 ...
- 20145204《网络对抗》逆向及bof基础实践
20145204<网络对抗>逆向及bof基础实践 实践目的说明 实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何 ...
- 20145208蔡野 《网络对抗》逆向及BOF基础实践
20145208蔡野 <网络对抗>逆向及BOF基础实践 逆向及Bof基础实践 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函 ...
- 《网络对抗》——逆向及Bof基础实践
<网络对抗>--逆向及Bof基础实践 原理 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数. 手工修改可执行文件,改变程序执行流程,直接跳转到g ...
随机推荐
- jquery如何判断表格同一列不同行input数据是否重复
function hasRepeat(objId,columnIndex){ var arr = []; $("#"+objId+" tbody tr").ea ...
- git & github 菜鸟笔记
1.概念: 最先进的分布式版本控制系统 文件修改该提交的内容:---版本 文件名 用户 说明 日期 GitHub网站上线了,它为开源项目免费提供Git存储 --CVS及SVN都是集中式的版本控制系统, ...
- 数据结构 + 算法 -> 收集
董的博客:数据机构与算法合集 背包问题应用(2011-08-26) 数据结构之红黑树(2011-08-20) 素数判定算法(2011-06-26) 算法之图搜索算法(一)(2011-06-22) 算法 ...
- 【BZOJ4439】[Swerc2015]Landscaping 最小割
[BZOJ4439][Swerc2015]Landscaping Description FJ有一块N*M的矩形田地,有两种地形高地(用‘#’表示)和低地(用‘.’表示) FJ需要对每一行田地从左到右 ...
- xmpp muc 群聊协议 3
6. Entity Use Cases A MUC implementation MUST support Service Discovery [7]. 服务端必须实现 service discove ...
- ios 统一设计,iOS6也玩扁平化
转:http://esoftmobile.com/2014/01/14/build-ios6-ios7-apps/ 前言 前段时间,苹果在它的开发者网站上放出了iOS系统安装比例,其中iOS7占到78 ...
- SpringCloud落地实践
这几年微服务架构越来越火.伴随着微服务概念的提示,越来越多的组织为了方便开发,结合实际提供很多微服务机构, 之前工作中一直使用dubbo作为微服务框架, dubbo只是专注于服务之间的通讯,所以更灵活 ...
- Less-mixin函数基础一
//mixin函数 立即执行mixin函数,example: .test{ color:#ff00000; background:red; } //立即执行mixin grammar 1 扩展exte ...
- Net应用架构设计
N-Tier 是从架构更大的维度上划分,每一个维度都是一个Tier(在微软的ESP2.0里翻译为”级”),比如电商架构划分如下: UI 服务接口 消息.缓存中间件 数据库 ...... Tier与Ti ...
- ffmpeg命令
1 将mp4格式的视频文件转换成mkv格式 ffmpeg -i input.mp4 -vcodec copy -acodec copy output.mkv