xiv*_*r77 4 c
从随机地址读取安全吗?我知道写作是不确定的行为但是只读书怎么样?
好吧,在许多可视化调试器中,我可以在任意地址中看到内存的内容.这是怎么做到的?
Ric*_*ner 5
由于行为未定义,答案是不确定的 - 或者至少是不稳定的.
如果你运气好,并且随机地址在你的程序的内存范围内,那么最有可能阅读并且你只是得到随机垃圾.
如果它在范围之外(即0x0/NULL),你很可能会得到一个分段错误(虽然这也不能保证)会终止你的程序 - 如果你认为这是"安全的"那么是的否则没有.
don*_*edo 5
不,这不安全。即使您不关心定义的值或准确度,也有内存映射 IO 之类的东西,因此随机地址可以与外围硬件交互。我在受保护内存之前就这样做了,是的,它会导致系统崩溃。
如今,根据您的系统,我希望看到进程空间之外地址的段错误。如果没有这种保护,在好的应用程序中使用时,坏的应用程序可能会访问有价值的数据,例如密码、信用卡信息等。
此外,您在调试器中看到的地址可能不是真实的物理地址。相反,您可能只看到虚拟内存地址。
归档时间:
10 年,8 月 前
查看次数:
354 次
最近记录: