Chinese, Simplified subtitles

← 02-39 内存溢出

Get Embed Code
4 Languages

Showing Revision 1 created 03/24/2013 by 秀隆 杨.

  1. 毋庸置疑,C/C++的这种做法打开一扇门,
  2. 形成了很多很多种系统崩溃的方式。
  3. 你可能听说过内存溢出,利用C/C++里的这个缺陷,
  4. 人们可以在数组范围之外进行读写,
  5. 恶意代码就是这样来获取内存位置的。
  6. 于是,这个就给各种黑客行为大开方便之门了。
  7. 那如何发现此类错误呢?
  8. 我们需要一个系统不变量来持续地
  9. 检查数组读写时的边界。
  10. 这里需要工具,来持续监控未初始化区域
  11. 的读写,监控每条指令语句的执行,
  12. 当程序试图访问一些未开辟的系统内存时,
  13. 不变量检查器就要抛出一个异常,或中止程序,
  14. 就能让我们检查到这类错误了。
  15. C/C++的工具可以帮助你--包括像electric fence这些工具,
  16. 这种工具,将一些代码块放置在每个内存开辟的代码块前面,
  17. 检测是否有读取这些空间以外内存的操作。
  18. 其次重要的工具是Valgrind,它就是在x86平台下的一个解释器,
  19. 也允许我们来监控C/C++程序中的未初始化代码的访问情况。