摘要: This tutorial will show you how to manually rebuild a backtrace with GDB on x86 using the stack frame pointer and current instruction pointer. Consider the following gdb backtrace: It's pretty clear t... 阅读全文
posted @ 2011-02-14 14:04 napoleon_liu 阅读(1606) 评论(0) 推荐(0) 编辑
摘要: 前言 从逻辑上讲进程的堆栈是由多个堆栈帧构成的,其中每个堆栈帧都对应一个函数调用。当函数调用发生时,新的堆栈帧被压入堆栈;当函数返回时,相应的堆栈帧从堆栈中弹出。尽管堆栈帧结构的引入为在高级语言中实现函数或过程这样的概念提供了直接的硬件支持,但是由于将函数返回地址这样的重要数据保存在程序员可见的堆栈中,因此也给系统安全带来了极大的隐患。 历史上最著名的缓冲区溢出攻击可能要算是1988年11月2日的... 阅读全文
posted @ 2011-02-14 01:01 napoleon_liu 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 以堆栈溢出为代表的缓冲区溢出已成为最为普遍的安全漏洞。由此引发的安全问题比比皆是。早在 1988 年,美国康奈尔大学的计算机科学系研究生莫里斯 (Morris) 利用 UNIX fingered 程序的溢出漏洞,写了一段恶意程序并传播到其他机器上,结果造成 6000 台 Internet 上的服务器瘫痪,占当时总数的 10%。各种操作系统上出现的溢出漏洞也数不胜数。为了尽可能避免缓冲区溢出漏洞被攻... 阅读全文
posted @ 2011-02-14 00:59 napoleon_liu 阅读(12642) 评论(1) 推荐(3) 编辑