溢出是什么意思啊在电脑中,益处是什么意
楼上的那是占用CPU,内存资源,使正常程序得不到资源,一般是采用死循环。不应该是溢出吧。
还有,那位安全专家,你这种发言未免太简洁了吧,而且打错了字也不改,太不尊重提问者了。
溢出的原理是:
在内存中,当一个程序运行时,系统会为它分配一定的资源。 例如C中的INT就是分配2字节的内存单元,能存放65535种数字,即-32768~32767范围的数,假如大于这个范围了呢?就会向上进位,但是程序只会读取2字节的数,超出的部分是不管的,就造成了重头再读数的现象。
而CPU处理数据是这样的:当处理某种程序A时,如果有另外一个程序B要执行,并且符合规范,CPU就会暂停执行当前程序,转去执行下一...全部
楼上的那是占用CPU,内存资源,使正常程序得不到资源,一般是采用死循环。不应该是溢出吧。
还有,那位安全专家,你这种发言未免太简洁了吧,而且打错了字也不改,太不尊重提问者了。
溢出的原理是:
在内存中,当一个程序运行时,系统会为它分配一定的资源。
例如C中的INT就是分配2字节的内存单元,能存放65535种数字,即-32768~32767范围的数,假如大于这个范围了呢?就会向上进位,但是程序只会读取2字节的数,超出的部分是不管的,就造成了重头再读数的现象。
而CPU处理数据是这样的:当处理某种程序A时,如果有另外一个程序B要执行,并且符合规范,CPU就会暂停执行当前程序,转去执行下一个程序,内存中的情况就是这样的:
[A程序 ]
[的执行 ]
[资源 ]〈-- A被分配资源,开始执行
[ ]
[B的执行 ]〈-- B暂时存储
[资源 ]
(内存的分配从下到上)
这时,假如缺乏必要的保护措施,并且A输入了大于分配给它的资源,那么这时,A的执行代码就会向下占用资源,并且覆盖B的部分。
如果我们写下精心设计的代码,让覆盖到B的那部分执行别有用心的语句,那么当计算机处理完A那部分资源,转回来继续执行B时,就会被欺骗执行那些别用用心的代码。
明白了吗,溢出攻击其实说出来也很简单。
成功后你可以让CPU执行你想要的任何代码,一般病毒都会尝试得到一个CmdShell,这样就能完全控制你的电脑了。
要想尽量避免这种情况,建议勤打补丁,并且不要执行一些奇怪的程序。
。
收起