35得票5回答
如何触发缓冲区溢出?

我得到了一个作业任务,要求使用缓冲区溢出来调用一个函数而不需要显式地调用它。代码基本上是这样的:#include <stdio.h> #include <stdlib.h> void g() { printf("now inside g()!\n"); } ...

17得票2回答
我能欺骗libc (GLIBC_2.13)加载它没有的符号(来自GLIBC_2.15)吗?

在尝试在Debian上运行"Steam for Linux"时,我遇到了一个问题。 libcef(Chromium嵌入式框架)与GLIBC_2.13(Debian测试版中的eglibc可以提供)配合良好,但需要从GLIBC_2.15中获得一个麻烦的额外函数(这是eglibc无法提供的):$ r...

10得票1回答
调用‘__wmemcpy_chk_warn’: “wmemcpy使用的长度大于目标缓冲区大小”

我有这段代码(让我们称之为problem.cpp): #include <string> using str = std::wstring; static str foo(str text = str()) { text.resize(4); return te...

9得票2回答
禁用使用__sprintf_chk()函数

我注意到一个C++程序使用了sprintf,其中这个sprintf隐式调用了__sprintf_chk()。这个__sprintf_chk()似乎通过检查堆栈帧来检查缓冲区溢出。 为了我的研究目的,我想知道是否有可能禁用使用__sprintf_chk()?

55得票8回答
缓冲区溢出在使用gdb时有效,但不使用gdb无效。

我正在使用 CentOS 6.4 32 位系统,尝试在一个程序中引发缓冲区溢出。在 GDB 中它可以工作。这是输出:[root@localhost bufferoverflow]# gdb stack GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60...

15得票7回答
sprintf函数的缓冲区溢出?

{ char buf[8]; sprintf(buf,"AAAA%3s","XXXXXXXX"); printf("%s\n",buf); } 会发生什么? 缓冲区有8个字符的空间,只剩下3个自由字符...

32得票12回答
什么是缓冲区溢出,如何引发它?

我听说过缓冲区溢出,想知道如何引发它。 有人能展示一个小的缓冲区溢出例子吗?还有它们被用于什么?

13得票4回答
如何防止memcpy缓冲区溢出?

在一个程序中,有一些固定大小的二进制缓冲区用于存储数据,并使用 memcpy 将缓冲区从一个复制到另一个。由于源缓冲区可能比目标缓冲区大,因此如何检测是否存在缓冲区溢出?

8得票1回答
在Mac OS X Lion上使用OpenMP进行编译失败(memcpy和SSE内置函数)

我遇到了以下问题。下面的代码片段在我尝试的任何Xcode版本(4.4、4.5)中都无法与Mac OS X联接。 #include <stdlib.h> #include <string.h> #include <emmintrin.h> int main...

10得票4回答
GCC如何检测堆栈缓冲区溢出问题

在gcc中有一个选项-fstack-protector-strong用于检测堆栈破坏。然而,它并不能始终检测到堆栈缓冲区溢出。对于第一个函数func,当我输入一个10个字符以上的字符串时,程序并不总是崩溃。我的问题是有没有一种方法可以检测堆栈缓冲区溢出。void func() { ch...