buffer-overflow相关内容

使用strcat的不工作追加字符数组

能否有人告诉我有什么不对的code ??? 字符的短信[] =“GR8”; strcat的(短信,“&安培; :)”); 解决方案 短信是大小的数组 4 1 。而你更追加字符文字,这是怎么回事阵列之外,作为数组可以在最大 4 这已经是由占据容纳的字符G,R,8,\\ 0 。 1。顺便说一句,到底为什么4?答:因为有在最后一个空字符! 如果你提到数组的大小,如下图所示,那么你 ..
发布时间:2016-08-23 11:14:01 C/C++开发

缓冲区溢出攻击的格式

通常我们都看到里面有基本的缓冲区溢出格式: - NOP指令壳+ code + return_address 为什么不我们使用, NOP指令+ return_address +外壳code?,我们做的返回地址指向外壳code的开始? 即时猜测,这是因为我们可能会想,如果该漏洞是在主写的堆栈段以外的数据()。我对吗?如果我是唯一的原因? 哦,是的,我不是指其他类型的攻击,它们使用的返程lib ..
发布时间:2016-08-22 16:49:37 C/C++

Valgrind的不会检测缓冲区溢出

的#include<&stdio.h中GT; 主要() { CHAR BUF [8]; sprintf的(BUF,“AAAA%3S”,“XXssssssssXXXsssssXXX”); 的printf(“%S \\ n”,BUF); } 我的valgrind预计检测上述code缓冲区溢出。但它没有报告任何错误或警告。我是否需要启用任何特殊标志是什么? 解决方案 ..
发布时间:2016-08-22 16:43:23 C/C++

C缓冲区溢出 - 为什么会出现这跳闸段错误​​的字节数不变? (的Mac OS 10.8的64位,铛)

我在C缓冲区溢出实验,并发现了一个有趣的怪癖: 对于任何给定数组的大小,似乎是能够在SIGABRT崩溃之前写入内存溢出的字节定数。例如,在10字节数组低于code可以在27轰然同样,20阵列字符 s时,可以溢出之前被溢出到26个字节40 字符的IT中止第41之前。 谁能解释这是为什么?此外,是SIGABRT相同(或引起)中“segmentation fault”? 的Mac OS 10.8 ..
发布时间:2016-08-22 15:22:37 C/C++

缓冲区溢出 - 在普通用户设计缺陷

下面是我的code,无论是脆弱的程序(stack.c)和我的攻击(exploit.c)。这code工作在一个pre封装的Ubuntu 9的教授发出了对于Windows用户(我有一个朋友测试他的计算机上),但在Ubuntu上12,我对我的iMac上运行,我得到段错误当我尝试在一个普通用户这样做。 下面的堆栈: // stack.c #包括LT&;&stdio.h中GT;INT BOF(字符*海 ..
发布时间:2016-08-22 14:41:04 C/C++

用C内存分配

我有一个关于内存分配秩序的问题。 在下面的code我分配在一个循环4串。 但是,当我打印的地址,他们似乎没有被分配一前一后...我是不是做错了什么或者是某种防御机制由操作系统prevent可能的缓冲区溢出实施? (我使用Windows Vista)。 感谢您。 的char ** stringArr; INT大小= 4,I; stringArr =(字符**)的malloc(大小* siz ..
发布时间:2016-08-21 22:44:42 C/C++

被认为sscanf的安全使用?

我的建议模糊的回忆,的sscanf 是坏的。我知道它不会溢出缓冲区,如果我使用的字段宽度说明,所以我的记忆中只是在玩把戏和我在一起? 解决方案 我想这取决于你如何使用它:如果您要扫描的东西像 INT ,它的罚款。如果你在扫描一个字符串,它不是(除非有一个宽领域,我忘了?)。 修改 这并不总是扫描字符串是安全的。 如果您的缓冲区的大小是一个常数,那么你当然可以将它指定为类似 20年代% ..
发布时间:2016-08-21 22:12:28 C/C++

缓冲区溢出用C

我试图写用C在Mac OS X 10.6的64位简单的缓冲区溢出。这里的概念: void函数(){ 字符缓冲区[64]; 缓冲[偏移] + = 7; //我不知道如何大的偏移需要是,如果 // 7是正确的。 }诠释主(){ INT X = 0; 功能(); X + = 1; 的printf(“ ..
发布时间:2016-08-21 22:11:02 C/C++

在Mac OS 10.6执行简单的缓冲区溢出

我想了解堆栈溢出基地和写一个简单的code利用堆栈。但不知何故,它不会在所有的工作,但只显示在我的机器(MAC OS豹)中止陷阱 我想的Mac OS对待不同的溢出,它不会让我到c code覆盖内存。例如, 的strcpy(缓冲区,输入)//可以说字符缓冲区[6],但投入是7个字节 Linux机器上,这code成功覆盖下一个堆栈,但prevented在Mac OS(中止陷阱) 任何人都知道 ..
发布时间:2016-08-21 21:31:53 C/C++

尝试缓冲区溢出

我试图使用缓冲溢出来改变堆栈具有以下code上的结果来改变函数的结果: 的#include<&stdio.h中GT; #包括LT&;&string.h中GT; #包括LT&;&stdlib.h中GT; INT check_auth1(字符*密码) { 炭password_buffer [8]; INT auth_flag = 0; 的strcpy(password_ ..
发布时间:2016-08-21 21:00:09 C/C++

安全C和大学 - 训练缓冲区溢出

我最近完成了C.大学课程,所以我当然缺乏经验。 一些大学往往会教导学生安全编程,的或至少一些元素的。有甚至视频(取从这里 )。 为C,复制字符串,需要 - 因为据我所知 - 的strcpy或string.h中的功能。如何在每一天的节目安全地使用它? 你有一些功能,处理分配,以prevent缓冲区溢出?还有的 ..
发布时间:2016-08-21 20:05:49 C/C++

返回到libc - 问题

我在与返回到libc的利用问题。问题是,什么也没有发生,但没有分段错误(是的,我居然溢出堆栈)。 这是我的程序: INT主(INT ARGC,字符** argv的){ 字符数组[512]; 得到(阵列); } 我用得到,而不是strcopy,因为我的地址开始为0x00和strcpy认为这是一个字符串的结束,所以我不能使用它。 下面是我所需要的地址: $ gdb的主要核心 (GDB ..
发布时间:2016-08-21 19:57:52 服务器开发

为什么这个内存地址有一个随机值?

我在i386上运行的Linux:x86_64.I've写了件C code和我拆开它,以及读寄存器,了解程序组件是如何工作的。下面是我写我的C程序。 的#include<&unistd.h中GT; #包括LT&;&string.h中GT; #包括LT&;&stdio.h中GT;字符* string_in =“没有工作”;INT测试(字符*本){ 炭sum_buf [6]; 函 ..
发布时间:2016-08-19 16:11:03 C/C++

这是为什么code容易受到缓冲区溢出攻击?

INT FUNC(字符*海峡) { 炭缓冲器[100]; 无符号短LEN = strlen的(STR); 如果(LEN>为100) { 返回(-1); } 函数strncpy(缓冲,STR,strlen的(STR)); 返回0; } 这code是容易受到缓冲区溢出攻击,而我试图找出原因。我想它与 LEN 被宣布为短而不是一个 INT ..
发布时间:2016-08-19 15:32:55 C/C++

sscanf函数改变另一个字符串的内容

我有问题看串与的sscanf 。我已经简单化了code把重点放在这个问题。下面是整个code是应该打开一个文件,读一些功能。但的sscanf 得有些奇怪。比如我宣布了一个名为字符串 ATM 与内容'原子'。在的sscanf 它打印这个字符串 ATOM 一段时间后,它为空。可能是什么问题?我认为它必须是一个分配的问题,但我找不到它。我尝试了其他议题的一些建议像其他东西代替%S ,但它并没有帮助。 ..
发布时间:2016-08-19 14:42:52 C/C++

如果一个人抱怨得到(),为什么不跟scanf函数相同(QUOT;%S" ...)?

从人得到: 不要使用gets()函数。因为它是 不可能知道不知道 提前数据多少 字符gets()函数将读取和 因为得到()将继续存储 字符过去的缓冲区的末尾, 这是极其危险的使用。 它已被用于破坏计算机 安全。使用与fgets()代替。 几乎无处不在我看到的 scanf函数中应该有同样的问题(的缓冲区溢出/缓冲区溢出): scanf函数(”%S“,字符串)。在这种情况下 ..
发布时间:2016-08-18 23:30:56 C/C++

如何确定一个分配的C缓冲区的大小?

我有一个缓冲区,并想要做一个测试看是否缓冲区具有足够的容量,即找到的元素个数,我可以添加到缓冲区。 的char *缓冲区=(字符*)malloc的(的sizeof(字符)* 10); 做一个 INT numElements个= sizeof的(缓冲); 不返回10,我如何能做到这一点任何想法? 解决方案 缓存只是没有大小信息的指针。然而,的malloc()例程将持有分配的大小你做, ..
发布时间:2016-08-18 23:28:45 C/C++

我怎样才能调用缓冲区溢出?

我得到了一个家庭作业,要求我调用一个函数没有显式调用它,使用缓冲区溢出。在code基本上是这样的: 的#include<&stdio.h中GT; #包括LT&;&stdlib.h中GT;无效克() { 的printf(“现在内克()\\ n!”); } 无效F() { 的printf(“现在里面的F()\\ n!”); //只能修改本节 //调用斜面克(), ..
发布时间:2016-08-18 21:58:35 C/C++

为什么这对于在一些平台上,而不是别人循环退出?

我最近开始学习C,我采取了类C作为主题。我目前正在玩弄循环和我遇到一些奇怪的行为,我不知道该怎么解释。 的#include<&stdio.h中GT;诠释的main() { int数组[10],I; 对于(i = 0; I< = 10;我++) { 数组[我] = 0; / * code不应该终止* / 的printf(“测试\\ n”); } 的pri ..
发布时间:2016-08-18 21:52:47 C/C++