Buffer Overflow导致另一个函数被调用
2009-10-26
我记得以前MS的林斌到学校演讲,演示了一个Buffer Overflow,冲掉了函数返回地址结果改成了另一个函数。
今天一时兴起想做个demo,试了一个多小时,终于成功了
下面这份代码编译以后执行的时候会调用到bad函数,呵呵
//搞定了,呵呵
//具体参见:http://en.wikipedia.org/wiki/Stack_buffer_overflow
#include <stdio.h>
#include <string.h>
void bad() {
printf("Oh shit really bad~!\r\n");
}
void foo() {
char overme[4] = "WOW";
*(int*)(overme+8) = (int)bad;
}
int main() {
foo();
}
参考:http://en.wikipedia.org/wiki/Stack_buffer_overflow
2 条评论
littlewater 2009-10-28 20:18:18强的- -|||
G_cofa 2009-11-01 11:09:02嗯,这个还基本从来没考虑过了,厉害。