- 1、本文档共50页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京大学计算机科学技术研究所 - 中国安全网
缓冲区溢出攻击技术 -栈溢出攻击技术 诸葛建伟 狩猎女神项目/The Artemis Project 2005-5-31 内容 缓冲区溢出攻击简介 基本概念及发展历史 背景知识 (Linux win32) 缓冲区溢出攻击的原理 栈溢出攻击如何工作? Linux: 栈溢出, shellcode Win32: 栈溢出, shellcode 总结 缓冲区溢出攻击的威胁 缓冲区溢出攻击的基本概念 向缓冲区中填入过多的数据,超出边界 导致数据外溢,覆盖了相邻的内存空间 利用缓冲区溢出改写数据、改变程序执行流程 干扰系统运行,破坏系统完全性,任意执行恶意代码 缓冲区溢出攻击的发展历史 1980s Morris蠕虫-fingerd缓冲区溢出攻击 1996 Aleph One, Smashing the Stack for Fun and Profit, Phrack 49 1998 Dildog: 提出利用栈指针的方法完成跳转 The Tao of Windows Buffer Overflows 1999 Dark Spyrit: 提出使用系统核心DLL中的Jmp ESP指令完成跳转, Phrack 55 M. Conover: 基于堆的缓冲区溢出教程 缓冲区溢出攻击背景知识与技巧 编译器、调试器的使用 Linux: gcc+gdb Win32: VC6.0+OllyDbg 进程内存空间结构 汇编语言基本知识 栈的基本结构 函数调用过程 GCC编译器基础 最著名的GNU的Ansi c/c++编译器 gcc [options] [filenames] 编译: gcc -c test.c 生成 test.o 连接: gcc -o test test.o 同时搞定: gcc test.c -o test make: 用于控制编译过程 Makefile How To GDB调试器的使用 断点相关指令 break/clear, disable/enable/delete watch – 表达式值改变时,程序中断 执行相关指令 run/continue/next/step attach – 调试已运行的进程 finish/return 信息查看相关指令 info reg/break/files/args/frame/functions/… backtrace – 函数调用栈 print /f exp – 显示表达式的值 x /nfu addr – 显示指定内存地址的内容 list – 列出源码 disass func – 反汇编指定函数 VC6.0命令行 环境变量 我的电脑-属性-高级-环境变量 PATH: C:\Program Files\Microsoft Visual Studio\VC98\Bin; C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin; INCLUDE: C:\Program Files\Microsoft Visual Studio\VC98\Include LIB: C:\Program Files\Microsoft Visual Studio\VC98\Lib 命令行指令 cl sourcefilename – 编译并链接 Win32平台调试器 OllyDbg1.10汉化版 32-bit assembler level analysing debugger by Oleh Yuschuk Free 支持插件机制 OllyUni: 查找跳转指令功能 Softice IDA Pro 背景知识-进程内存空间 Linux进程内存空间 Highest zone (0xc0000000-3G) 进程环境参数: env strings pointers 进程参数: argv strings pointers, argc 栈 存储函数参数、本地参数和栈状态变量 (返回地址, …) LIFO, 向低地址增长 堆 动态分配变量 (malloc) 向高地址增长 .bss: uninitialized data .data: static initialized data .text(0: 指令, 只读数据 Example: ./linux/memory/memory.c Win32进程内存空间 系统核心内存区间 0xFFFFFFFF~0(4G~2G) 为Win32操作系统保留 用户内存区间 00(2G~0G) 堆: 动态分配变量(malloc), 向高地址增长 静态内存区间: 全局变量、静态变量 代码区间: 从0始 栈: 向低地址增长 单线程进程: (栈底地址
您可能关注的文档
- 关于富国收益宝交易型货币市场基金2017 年“端午”假期前暂停申购 .PDF
- 关于对全校公共选修课课程进行统计、认定的 - 上海交通大学-机械与 .DOC
- 关于壶具.DOC
- 全球热带副热带地区春冬季闪电活动对ENSO的响应 - 中国干旱气象网.PDF
- 关于正态随机变量的线性组合分布.PDF
- 关于火山熔岩分类命名的建议 - 大学化学.PDF
- 关于红磷的禁止.PDF
- 关于编写《南通市政府采购货物、服务类 - 南通市财政局.DOC
- 关于表现主义的定义问题.PDF
- 关于远距离及长期监测的应用解决方案 - 仪器信息网.DOC
- 黑龙江宝清第一高中2025届高考全国统考预测密卷生物试卷含解析.doc
- 【优秀】防诈骗宣传总结15篇.docx
- 圆柱表面积练习.ppt
- 600字作文欢度六一.docx
- 浙江省金华市武义第三中学2025届高三二诊模拟考试生物试卷含解析.doc
- 西藏日喀则市第四高级中学2025届高三第一次模拟考试生物试卷含解析.doc
- 2025届四川省富顺二中高高考仿真卷历史试卷含解析.doc
- 甘肃省天水市秦安县第二中学2025届高考生物五模试卷含解析.doc
- 五新隧装-市场前景及投资研究报告:隧道钻爆法装备,发力水利矿山市场,破发.pdf
- 2025届山东省济宁市第一中学高三第二次诊断性检测历史试卷含解析.doc
最近下载
- LittleSwan小天鹅TB36V81H 波轮全自动洗衣机 巴赫银 门盖巴赫银 波轮式 220V,1Ph 50Hz.pdf
- 广东梅州抽水蓄能电站二期环境影响报告书(送审稿).doc
- 第一讲:形势与政策课件.ppt VIP
- 大型轧辊激光毛化及表面强化成套系统项目建议书.pdf
- 林和靖意象在日本文化中的流播和变异___以汉诗文为中心.pdf
- 阳光棚光伏支架结构计算书.pdf
- Project 2 Our friends(教案)-2021-2022学年英语五年级上册 .docx
- 气测录井资料解释与应用详细课件.ppt VIP
- 气测录井资料解释与应用详细课件.pptx VIP
- 旧建筑再利用的计手法及相关问题探讨——以博览类建筑为例.pdf
文档评论(0)