请问经常见到的漏洞溢出、溢出安全中的溢出是何意?谢谢!
溢出的原理是: 在内存中,当一个程序运行时,系统会为它分配一定的资源。例如C中的INT就是分配2字节的内存单元,能存放65535种数字,即-32768~32767范围的数,假如大于这个范围了呢?就会向上进位,但是程序只会读取2字节的数,超出的部分是不管的,就造成了重头再读数的现象。
而CPU处理数据是这样的:当处理某种程序A时,如果有另外一个程序B要执行,并且符合规范,CPU就会暂停执行当前程序,转去执行下一个程序,内存中的情况就是这样的: [A程序 ] [的执行 ] [资源 ]〈-- A被分配资源,开始执行 [ ] [B的执行 ]〈-- B暂时存储 [资源 ] (内存的分配从下到上) 这时,假如缺乏必要的保护措施,并且A输入了大于分配给它的资源,那么这时,A的执行代码就会向下占用资源,并且覆盖B的部分。
如果我们写下精心设计的代码,让覆盖到B的那部分执行别有用心的语句,那么当计算机处理完A那部分资源,转回来继续执行B时,就会被欺骗执行那些别用用心的代码。 明白了吗,溢出攻击其实说出来也很简单。成功后你可以让CPU执行你想要的任何代码,一般病毒都会尝试得到一个CmdShell,这样就能完全控制你的电脑了。
要想尽量避免这种情况,建议勤打补丁,并且不要执行一些奇怪的程序。 _________ Good Luck 可以联系我Q742734542在线与你讨论 提示电脑问题讨论 。
答:溢出全名是“缓冲区溢出”缓冲区是内存中存放数据的地方。在程序试图将数据放到机器内存中的某一个位置的时候,因为没有足够的空间就会发生缓冲区溢出。而人为的溢出则是有...详情>>
答:详情>>