比这篇新的文章: Codee#7666
比这篇旧的文章: java

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

语言: C++, 标签: 无  2009/10/26发布 2年前更新 更新记录
作者: 半瓶墨水, 点击887次, 评论(2), 收藏者(0), , 打分:

背景
主题: 字体:
01 //搞定了,呵呵
02 //具体参见:http://en.wikipedia.org/wiki/Stack_buffer_overflow
03 //中间没有任何调用bad的代码,但是实际执行的时候bad被调用
04 #include <stdio.h>
05 #include <string.h>
06
07 void bad() {
08     printf("Oh shit really bad~!\r\n");
09 }
10
11 void foo() {
12     char overme[4] = "WOW";
13     *(int*)(overme+8) = (int)bad;
14 }
15
16 int main() {
17    foo();
18 }


所有评论,共2条:( 我也来说两句)

1
tk 2年前 回复
0
0
我这里会出现三种错误,平台 [ Debian5.0 gcc version 4.3.2 (Debian 4.3.2-1.1)] 如下:
1. Illegal instruction
2. Segmentation fault
3. Trace/breakpoint trap
2
0
0
@tk: Debug 版本?

发表评论

注册登录后再发表评论