标签: c buffer overflow paging
如何利用分段和分页来防止缓冲区溢出? 一种猜测可能是 - 因为分段只为每个进程提供一部分内存,如果进程试图访问其段外的地址,则会发生段错误。请告诉我这是否正确。 谢谢!
答案 0 :(得分:2)
分段/分页不会阻止您的代码尝试访问其边界之外的内存。这是缓冲区溢出的定义,没有任何类型的内存保护会尝试破坏代码尝试执行不允许执行的操作。
分段或分页可以做什么,可以防止您的代码成功访问它不拥有的内存。操作系统真正拥有的唯一选择是终止硬件检测到尝试做“坏”的过程。