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

  • Share/Bookmark

1 Tweet

共 3 条评论

  • realfun 十月 27th, 2009 1:33 上午

Buffer Overflow导致另一个函数被调用: 我记得以前MS的林斌到学校演讲,演示了一个Buffer Overflow,冲掉了函数返回地址结果改成了另一个函数。 今天一时兴起想做个demo,试了一个多小时,终于成.. http://bit.ly/8RK0n

This comment was originally posted on Twitter

  • littlewater 十月 28th, 2009 8:18 下午

强的- -|||

  • G_cofa 十一月 1st, 2009 11:09 上午

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

发表评论

  • :l
  • :)
  • :q
  • :(
  • :^
  • :x
  • :v
  • :D
  • :s
  • :h
  • :e
  • :X
  • :k
  • :w
  • :d
  • :p

注意:评论中需包含至少一个中文字,否则视为无效

Additional comments powered by BackType