最近看了不少计算机底层的东西,感觉看汇编代码已经没有明显吃力的感觉,于是就想结合最近的阅读作些小东西,来印证书本上的知识。第一个想到的就是基于栈的缓冲区溢出攻击。
关于缓冲区溢出攻击的原理,已经看了很多编了, 并不难理解,但是还是自己做个简单的实验来吧,纸上得来终觉浅。
试验环境:Ubuntu 6.10 , Kernel version:2.6.17.10, gcc :4.1.2 gdb:6.4.90
代码如下:
关于缓冲区溢出攻击的原理,已经看了很多编了, 并不难理解,但是还是自己做个简单的实验来吧,纸上得来终觉浅。
试验环境: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 (
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 (