我想在进程关闭时恢复堆栈和堆。因此,如果二进制文件保持不变,则我必须确保函数的地址在每次启动时都保持不变。
有谁可以帮忙吗?
如果启用了地址空间布局随机化(在大多数当前的Linux系统上就是这种情况),那么否,函数地址每次加载二进制文件时都不会保持不变。应用了各种不同的布局随机化,并且如果二进制与位置无关,则可以应用所有随机化。特别是,库ASLR意味着每次都将库加载到一个不同的位置,而执行ASLR意味着每次也都将位置无关的二进制加载到一个不同的位置。
Ubuntu Wiki很好地总结了各种可能性。它们不是特定于Ubuntu的。
您可以通过更改/proc/sys/kernel/randomize_va_space
设置来禁用所有这些功能(不建议这样做):0将禁用ASLR。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句