- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
缓冲区溢出攻击技术缓冲区溢出攻击技术
文伟平 博士 副教授
weipingwen@
北京大学 软件与微电子学院 信息安全系
北京大学信科学院软件所信息安全实验室
课程内容
缓冲区溢出相关背景概念缓冲区溢出相关背景概念
缓冲区溢出原理缓冲区溢出原理
溢出保护技术
安全编程技术
引子
1988988 Moorriss蠕虫事件蠕虫事件
CERT统计数据
缓冲区溢出相关概念
缓冲区缓冲区
从程序的角度,缓冲区就是应用程序用来保存用户
输入数据输入数据、程序临时数据的内存程序临时数据的内存空间间
缓冲区的本质
数组
存储位置
Stack
Heap
数据段
缓冲区溢出相关概念
缓冲区溢出缓冲区溢出
如果用户输入的数据长度超出 了程序为其分配的内
存存空间间,,这些数据就会这些数据就会覆覆盖程序为程序为其它数据其它数据分配的分配的
内存空间,形成所谓的缓冲区溢出
缓冲区溢出攻击的发展历史
1988
Morris蠕虫-fingerd缓冲区溢出攻击
1996
Aleph One, Smashing the Stack for Fun
and Profit, Phrack 49
Dildog: 提出利用栈指针的方法完成跳转
TheThe TaoTao ofof WindowsWindows BufferBuffer OverflowsOverflows
1999
DarkDark SpyritSpyrit:: 提出使用系统核心提出使用系统核心DLLDLL中的中的JmpJmp
ESP指令完成跳转, Phrack 55
M. Conover: 基于堆的缓冲区溢出教程
缓冲区溢出攻击背景知识与技巧
编译器编译器、调试器的使用调试器的使用
Linux: gcc+gdb
进程内存空间结构进程内存空间结构
汇编语言基本知识
栈的基本结构
函数调用过程函数调用过程
GCC编译器基础
著名的著名的GNU的的Ansi c//c++编译器编译器
gcc [options] [filenames]
编译编译:: gccgcc -cc testtest.cc 生成生成 testtest.oo
连接: gcc -o test test.o
同时搞定同时搞定:: gccgcc testtest.cc -oo testtest
make: 用于控制编译过程
Makefile How To
GDB调试器的使用
断点相关指令
break//clear,, disable//enable//delete
watch – 表达式值改变时,程序中断
执行相关指令
run/continue/next/step
attach – 调试已运行的进程
finish/returnfinish/return
信息查看相关指令
infoinfo reg/break/files/args/frame/functions/reg/break/files/args/frame/functions/…
backtrace – 函数调用栈
print /f exp – 显示表达式的值
x //nffu addddr – 显示指定内存地址的内容显示指定内存地址的内容
list – 列出源码
disass func – 反汇编指定函数反汇编指定函数
文档评论(0)