主题:一篇讲memory overflow导致被攻击的文章 -- yueyu
共:💬64 🌺34
strcpy
参数是char*
,原来是靠\0来判断结束的,而程序员也习惯了如此。编译器也不像strncpy一样有长度信息来判断copy多少个字节,所以也没办法做检测。一个可能的方案是再套一层VM,重新定义char*,让他默认编译进去一个length。这就是Java作的事情。
但是问题又来了,如果这个VM有安全漏洞呢?因为VM的实现,也只能是C。
当然,可以最底层的OS里面,char*就编译一个length进去,但连kernel都要重写了,工作量巨大。
- 相关回复 上下关系8
压缩 2 层
🙂问个外行话, spin 字92 2009-02-18 00:45:44
🙂问题是。。。 1 素里太守 字161 2009-02-18 01:38:15
🙂那能不能升级gcc编译器哪 spin 字188 2009-02-18 02:13:22
🙂可以设想一个case
🙂信息不足,编译器也帮不上忙 1 yhz 字75 2009-02-18 05:15:26
🙂很难 1 数值分析 字282 2009-02-18 04:25:19
🙂写缓冲溢出攻击的也是这些懂行的人 美人他爹 字83 2009-02-17 10:31:51
🙂从这点上讲,开源项目更容易受到攻击。 素里太守 字40 2009-02-17 13:10:24