linux 调试器如何设法禁用ASLR

bxjv4tth  于 12个月前  发布在  Linux
关注(0)|答案(1)|浏览(141)

我在一台Linux电脑上写了一个C程序,它显示main函数地址。ASLR似乎被启用了,因为如果一个程序启动几次,地址就不一样了。
我试着用gdb调试这个程序,当程序通过gdb运行时,main函数的地址是一样的。
所以看起来gdb可以禁用ASLR。gdb是如何做到的?

balp4ylt

balp4ylt1#

在Linux上,这是使用personality库调用完成的。
在MacOS上,这是使用传递给posix_spawnposix_spawnattr_t中设置的标志来完成的,可以在这里找到这样做的代码。

相关问题