12得票5回答
如何确定已分配的C缓冲区的大小?

我有一个缓冲区,并且想要进行测试,以查看缓冲区是否具有足够的容量,即找出我可以添加到该缓冲区的元素数量。char *buffer = (char *)malloc(sizeof(char) * 10); 执行以下操作:int numElements = sizeof(buffer); 不返回...

81得票10回答
栈溢出和缓冲区溢出有什么区别?

在编程中,堆栈溢出和缓冲区溢出有什么区别?

7得票1回答
无法在堆栈上写入(堆栈溢出)

我正在进行一些安全实验,特别是尝试理解ret2ret漏洞利用。 我正在进行实验的代码: void foo(char * val){ char buffer[64]; int i; for (i=0; val[i]!=0; i++) buffer...

7得票1回答
snprintf和vsnprintf哪个更好,我如何确保安全使用它们?

我决定在旧代码上运行静态分析工具,结果发现我使用了大量的sprintf。该工具建议用vsnprintf或snprintf替换这些调用,因为sprintf不进行任何缓冲区溢出的边界检查。 我可以轻松地在调用上做查找和替换,使其使用snprintf或vsnprintf代替,但我想确保没有其他需要...

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

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

8得票4回答
使用缓冲区溢出执行Shell代码

最近我一直在学习计算机安全,遇到了一些问题,特别是这个问题让我有些困扰。 我需要溢出一个带有固定缓冲区的函数,以便在文件shellcode中执行shellcode。这个函数非常简单: void vuln(char *str) { char buf[64]; strcpy(b...

9得票3回答
尝试缓冲区溢出攻击

我正在尝试使用缓冲区溢出来改变函数的结果,通过以下代码来改变堆栈上的结果: #include <stdio.h> #include <string.h> #include <stdlib.h> int check_auth1(char *passwor...

7得票1回答
声明硬编码的std::string会导致缓冲区溢出。

我在程序中有以下代码行会导致运行时警告: if (!is_directory("C:\\NGFMS_Debug\\Files") && !create_directories("C:\\NGFMS_Debug\\Files")) 警告消息如下:“在XXX.exe中发生了缓...

8得票7回答
当目标缓冲区小于源缓冲区时使用strcpy函数

我想了解strcpy和strncpy之间的区别/缺点。 有人能帮忙吗? void main() { char src[] = "this is a long string"; char dest[5]; strcpy(dest,src) ; printf("%s \n", dest); p...

12得票2回答
WPD API如何检测设备是否为手机?

编辑:已请求完整源代码。以下是一个简单的实现,以便复制错误。 内容枚举已被删除,但崩溃仍会在第一个对象调用时发生。在这种情况下,是WPD_DEVICE_OBJECT_ID对象。 CPP链接(错误开始于103行) QMAKE.PRO链接(我正在使用Qt) 在我的项目中,我使用WPD A...