最近看了不少计算机底层的东西,感觉看汇编代码已经没有明显吃力的感觉,于是就想结合最近的阅读作些小东西,来印证书本上的知识。第一个想到的就是基于栈的缓冲区溢出攻击。
关于缓冲区溢出攻击的原理,已经看了很多编了, 并不难理解,但是还是自己做个简单的实验来吧,纸上得来终觉浅。
试验环境:Ubuntu 6.10 , Kernel version:2.6.17.10, gcc :4.1.2 gdb:6.4.90
代码如下:
#
include <stdio.h>
char buf[]
=
{
0x01
,
0x02
,
0x03
,
0x04
,
0x05
,
0x06
,
0x07
,
0x08
,
0x00
,
0x00
,
0x0a
,
0Xff
,
0X0D
,
0X0E
,
0X0F
,
0X10
,
0XE4
,
0X83
,
0X04
,
0X08
,
''
};


void hack()
{
printf
(
"
You have been hacked.
"
);
}

void unsafecopy (
const
关于缓冲区溢出攻击的原理,已经看了很多编了, 并不难理解,但是还是自己做个简单的实验来吧,纸上得来终觉浅。
试验环境:Ubuntu 6.10 , Kernel version:2.6.17.10, gcc :4.1.2 gdb:6.4.90
代码如下:










