计算机中的“溢出”到底是什么意思

溢出是黑客开发的控制别人电脑的程序。
溢出是黑客利用操作系统的漏洞,专门开发了一种程序,加相应的参数运行后,就可以得到你电脑具有管理员资格的控制权,你在你自己电脑上能够运行的东西他可以全部做到,等于你的电脑就是他的了。
当你用 C/C++ 书写代码时,应该处处留意如何处理来自用户的数据。如果一个函数的数据来源不可靠,又用到内存缓冲区,那么它就必须要做到知道内存缓冲区的总长度和检验内存缓冲区。
扩展资料
缓冲区溢出
缓冲区是用户为程序运行时在计算机中申请的一段连续的内存,它保存了给定类型的数据。缓冲区溢出指的是一种常见且危害很大的系统攻击手段,通过向程序的缓冲区写入超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其他的指令,以达到攻击的目的。
数据溢出
在计算机中,当要表示的数据超出计算机所使用的数据的表示范围时,则产生数据的溢出。
客观原因
在 C 和 C++ 语言本身中,这个问题是不容易解决的。该问题基于 C 语言的根本设计决定(特别是 C 语言中指针和数组的处理方式)。由于 C++ 是最兼容的 C 语言超集,它也具有相同的问题。
现实状况
在几乎所有计算机语言中,不管是新的语言还是旧的语言,使缓冲区溢出的任何尝试通常都会被该语言本身自动检测并阻止(比如通过引发一个异常或根据需要给缓冲区添加更多空间)。但是有两种语言不是这样:C 和 C++ 语言。
参考资料:百度百科-溢出
数据溢出是什么意思

在计算机中,当要表示的数据超出计算机所使用的数据的表示范围时,则产生数据的溢出,这种现象叫做数据溢出。
例如,一数据源不断发送数据,进入缓存区,再从缓存端口输出。但是若数据写入的速率大于数据读出的速率,那么缓存器迟早要被数据占满,若不采取一定措施(如暂停写入数据),那么数据就会溢出,这样会导致数据的丢失。
数据溢出的的原因
当应用程序读取用户(也可能是恶意攻击者)数据,试图复制到应用程序开辟的内存缓冲区中,却无法保证缓冲区的空间足够时(换言之,假设代码申请了N字节大小的内存缓冲区,随后又向其中复制超过N字节的数据),内存缓冲区就可能会溢出。
最重要的是,C/C++编译器开辟的内存缓冲区常常邻近重要的数据结构。假设某个函数的堆栈紧接在在内存缓冲区后面时,其中保存的函数返回地址就会与内存缓冲区相邻。
此时,恶意攻击者就可以向内存缓冲区复制大量数据,从而使得内存缓冲区溢出并覆盖原先保存于堆栈中的函数返回地址。这样,函数的返回地址就被攻击者换成了他指定的数值;一旦函数调用完毕,就会继续执行“函数返回地址”处的代码。
什么是溢出啊

就是某个容器装满了东西后,再装就流出来了.
<br>如水溢出.
关于“溢出攻击”我想老一点的黑客都知道,对于菜鸟就不一定了。那么“溢出攻击”到底是什么意思呢?
在计算机中有个叫“缓冲区”的地方,他是用来存储用户输入的数据的,缓冲区的长度是被事先设定好的,如果用户输入的数据超过了缓冲区的长度,那么就会溢出,而这些溢出的数据就会覆盖在合法的数据上,这就像杯子装水的道理,水多了杯子装不下,当然就会溢出咯!缓冲区溢出漏洞主要是由于许多软件没有对缓冲区进行检查而造成。
如果溢出的数据是一条像“net user 5616 123/add”这样的指令,如果执行会怎样呢?(…..)所以利用缓冲区溢出进行攻击是一种很好的方法。常见的溢出攻击如:微软的MS-04011远程缓冲区溢出漏洞。利用该漏洞就可以获得对方的SHELL,而且这个漏洞也被许多人用来入侵,成功率很高,不过现在的人都有点安全意识,都补上了该漏洞,现在很少有这样漏洞的机子。
溢出的意思是什么?

上面讲的完全错误,程序如果设计不完善,校验码没发挥作用,这样程序运算的时候可能出现溢出,比如-1+2,结果可能是3,这就是上溢
溢出的判断方法

溢出判断方法一
用Xf和Yf表示被加数和加数补码的符号位,Zf为补码和的符号位.当出现Xf = Yf= 0两数同为正,而Zf为负,即Zf=1时,有上溢.当出现Xf =Yf = 1两数同为负,而Zf为正,即Zf= 0时,有下溢.
溢出判断方法二
当数值最高位有进位位C1=1,符号位没有进位C0=0时,或当数值最高位没有进位位C1=0,符号位有进位C0=1时,结果有溢出.
溢出判断方法三:
用变形补码进行双符号位运算.在变形补码中,正数符号以"00"表示,负数的符号以"11"表示.一般称左边的符号位为第一符号位,右边的符号位为第二符号位.若运算结果的符号位为"01",则表明有正溢出产生.若运算结果的符号"10",则表明有负溢出产生.
原创文章,作者:聚禄鼎,如若转载,请注明出处:https://www.xxso.cn/117363.html