10得票7回答
缓冲区是什么?

就我对编程语言的理解,缓冲区是存储数据的任何内存部分,例如int、float变量、字符数组等。然而,在了解缓冲区溢出时,我阅读关于堆栈的内容时发现了这个链接http://www.tenouk.com/Bufferoverflowc/Bufferoverflow2a.html。链接中的图将缓冲区...

10得票2回答
如何在Visual C++运行时中禁用缓冲区溢出检查?

我和几千其他人一起,遇到了由Microsoft Visual C++ Runtime引发的错误: 为了搜索引擎的效益,需要说明: Microsoft Visual C++ Runtime Library Buffer overrun detected! Program: %s ...

10得票4回答
缓冲区溢出和返回至libc攻击的区别

我想了解这两种攻击之间的确切区别。根据我所了解的: 缓冲区溢出:它覆盖栈上的ret地址,使其指向代码的另一部分,其中插入了恶意代码。因此,我们需要修改程序的源代码才能实际执行攻击。 返回到Libc:这里不是修改源代码,而是使用由C库提供的运行时函数调用(比如打开一个shell)。在这里,用...

10得票5回答
当我覆盖一个易受攻击程序的ret地址时,为什么会出现"Cannot find bound of current function"?

我希望为教育目的利用基于堆栈的缓冲区溢出。 有一个典型的函数从主函数中调用,该函数使用从程序输入的参数作为本地缓冲区,并将参数保存在其中。如果给定一个这样的输入:nops+shellcode+address_shellcode,我将利用它。 通过gdb调试,我找到了shell code的地...

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

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

10得票2回答
为什么 fgets 函数被弃用?

来自GNU C编程教程: fgets("file get string")函数类似于gets函数。此函数已被弃用——这意味着它已经过时,强烈建议不要使用它——因为它是危险的。它是危险的,因为如果输入数据包含null字符,则无法确定。除非您知道数据不可能包含null,否则请勿使用fget...

10得票3回答
boost::asio::buffer:如何获取缓冲区大小并防止缓冲区溢出?

我有以下两个用于发送和接收数据包的函数。 void send(std::string protocol) { char *request=new char[protocol.size()+1]; request[protocol.size()] = 0; memcpy...

10得票3回答
GCC编译C/C++的最严格选项集是什么?

哪些GCC选项能够提供最好的保护,以防止内存损坏漏洞,如缓冲区溢出和悬空指针?GCC是否提供任何类型的ROP链缓解措施?是否存在性能问题或其他问题,会阻止该GCC选项在生产中用于关键任务应用程序? 我正在查看Debian强化指南以及GCC Mudflap。以下是我考虑的配置:-D_FORTI...

10得票2回答
Visual Studio 2013如何检测缓冲区溢出?

Visual Studio 2013 C++项目具有/GS开关,可在运行时启用缓冲区安全检查验证。自从升级到VS 2013以来,我们遇到了更多的STATUS_STACK_BUFFER_OVERRUN错误,并且怀疑这与新编译器中改进的缓冲区溢出检查有关。我一直在尝试验证这一点,并更好地理解如何检...

9得票2回答
Android MediaRecorder采样率和噪声问题

我在使用Android的MediaRecorder录制麦克风声音到.m4a文件(AAC-LC,MPEG-4容器)时遇到了问题。从API 18开始,默认采样率从44.1或48 kHz(取决于设备)降至仅8 Hz。如果我使用MediaRecorder.setAudioSamplingRate指定采...