Buffer Overflow导致另一个函数被调用

作者:半瓶墨水   链接:http://www.2maomao.com/blog/buffer-overflow-call-func/

我记得以前MS的林斌到学校演讲,演示了一个Buffer Overflow,冲掉了函数返回地址结果改成了另一个函数。

今天一时兴起想做个demo,试了一个多小时,终于成功了

下面这份代码编译以后执行的时候会调用到bad函数,呵呵

C++语言: Buffer Overflow导致另一个函数被调用
//搞定了,呵呵
//具体参见: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 条评论 发表在“Buffer Overflow导致另一个函数被调用”上

  1. littlewater说道:

    强的- -|||

  2. G_cofa说道:

    嗯,这个还基本从来没考虑过了,厉害。

留下回复