C++溢出漏洞 在线等

来源:百度知道 编辑:UC知道 时间:2024/06/02 06:46:11
在编译一个 C++程序时定义了一个 int c 要求从键盘上输入C
要输入多少位数才会造成溢出 多大的数会造成程序出错
另外怎么样用一个简单的代码来利用这个溢出漏洞写一个程序 比如在界面上输出hello world
说详细点谢谢
那怎么利用这个漏洞输入 HELLO WORLD呢 这个问题比较重要 要怎么办

输入多大的数都不会造成溢出,
程序会自动丢弃多余的数字,

多大的数会造成程序出错:
与编译器有关, int, TC 16位, VC++ 32位
有符号数
16位: 0x7fff
32位: 0x7fffffff
无符号数
16位: 0xffff
32位: 0xffffffff

以下是在VC++6.0
#include<iostream>
using namespace std;
void main()
{
int c;

cin>>c;
if(c<=2147483647&&c>=-2147483648)

cout<<"HELLO WORLD"<<endl;
}
理论上应该是这样,你自己试试,另外 你可以用sizeof(int)求一下int值占有几个字节,根据字节数推出范围,

大于2147483647就会溢出。

这个没有简单办法能够做到, 你只有自己读入字符串折腾成数字数字看有没有超过int结构的限制