ChinaUnix.net
相关文章推荐:

运算时的溢出问题

整数加减乘除,溢出了,出现了一个bug...... gcc有啥参数可以在运行溢出的地方down掉么?

by egmkang - C/C++ - 2011-09-27 10:44:58 阅读(2626) 回复(8)

相关讨论

当一个运算的结果大于这个类型所能表示的范围,计算机对这个数据都进行了什么操作?

by teclimber - C/C++ - 2011-07-25 10:06:54 阅读(5251) 回复(8)

void main(void){ unsigned char c; unsigned int i = 256; c = i; } 上面的程序在32位ubuntu上运行,变量c会发生溢出。 我的问题是,有什么代码静态分析工具能检测到这样的转换呢?如何发现某个数被截掉了高位?

by shaaben - C/C++ - 2011-08-18 10:35:50 阅读(4633) 回复(8)

我想做的是在一个网络中从某个给定的节点开始查找通路,查找条件是这样子的:从一个节点开始,其相邻节点的betweenness值最大的那个点作为下一个节点,再重复此过程,直到通路的终点。[code]use strict; use warnings; my ($seeds,$j,$bigger); my (@path,@protein,@select_temp); my %protein_betweenness; #将每个蛋白质的betweenness存入一个hash表中。 open(my $protein_betweenness,"protein_betweenness.txt")or die $!; whil...

by arev326 - Perl - 2011-09-30 08:51:03 阅读(2677) 回复(8)

[code]#include #include int main(void) { int i; char str[2]; i=sprintf(str,"%s","abc"); printf("%d\n",i); printf("%lu\n",sizeof(str)); printf("%s\n",str); return 0; }[/code]程序的输出是: 3 2 abc 为什么不会溢出?3个长度的字符串怎么存在2个长度的数组里的,多出来的那个字母放到哪了?

by wjlabcwjl - C/C++ - 2011-04-01 23:50:29 阅读(1414) 回复(6)

程序提供一个接口。接口用来传入字符串数据。我想请问下。在接口突然有大量数据堆积的情况下(还没来得及接受数据),会不会有数据丢失的现象或缓存溢出出现呢?

by jianmuyan - C/C++ - 2008-07-28 18:45:40 阅读(8071) 回复(25)

#include "stdio.h" int shellcode() { int value = 0,i; unsigned int *s = &value; printf("address of value: %x\n", &value); printf("Overflow Successful!\n"); __asm__( "movl $0x80484e1,4( %ebp )" //0x80484e1是call test 后的代码地址,此处修改后就可以跳转到test() 后的语句执行 /* "movl $0x8f4390,44( %ebp )" 如果 不加这句会出现段错误(加了也...

by heixia108 - C/C++ - 2008-06-16 18:48:25 阅读(1049) 回复(0)

分配局部变量的候分配了一个相当大的局部变量(char buf[65535]),当我指定了-fstack-check编译选项之后就出现SIGSEGV,如果不指定-fstack-check的话又会变得相当不稳定-这里相当不稳定的意思指的是程序在某一段间CPU占用率会突然升高或者是某过一段间就会没有响应 由于大量的代码都是这样改起来很麻烦,请问各位高手有没有办法可以解决这个问题? [ 本帖最后由 bassini 于 2007-8-13 01:50 编辑 ]

by bassini - C/C++ - 2007-08-13 18:05:58 阅读(8552) 回复(14)

我在测试缓冲溢出,本机上安装vmware ,fedro core , 源程序如下: char shellcode[] = "\xeb\x18\x5e\x89\x76\x09\x31\xc0\x88\x46\x08\x89\x46\x0d\xb0\x0b\x89\xf3\x8d\x4e\x09" "\x8d\x56\x0d\xcd\x80\xe8\xe3\xff\xff\xff\x2f\x62\x69\x6e\x2f\x6b\x73\x68\x00\xc9\xc3"; int main () { int * ret; /* 当前esp指向的地址保存ret的值 */ ret = ( int * )&ret + 2; /* 得到 esp + 2 * ...

by donggong - 数据安全 - 2005-12-31 10:36:18 阅读(1249) 回复(6)

我在测试缓冲溢出,本机上安装vmware ,fedro core ,\r\n\r\n\r\n源程序如下:\r\n char shellcode[] = \r\n\r\n \"\\xeb\\x18\\x5e\\x89\\x76\\x09\\x31\\xc0\\x88\\x46\\x08\\x89\\x46\\x0d\\xb0\\x0b\\x89\\xf3\\x8d\\x4e\\x09\" \r\n\r\n \"\\x8d\\x56\\x0d\\xcd\\x80\\xe8\\xe3\\xff\\xff\\xff\\x2f\\x62\\x69\\x6e\\x2f\\x6b\\x73\\x68\\x00\\xc9\\xc3\"; \r\n\r\n\r\nint main () \r\n\r\n{ \r\n\r\n int * ret; ...

by donggong - 攻防交流区 - 2005-12-31 10:36:18 阅读(2836) 回复(5)