我正在尝试 ret-to-libc 攻击并使用以下代码来获取环境变量 /bin/bash 的地址
#include <unistd.h>
int main(void)
{
printf("bash address: 0x%lx\n", getenv("SHELL"));
return 0;
}
当我使用gdb的x命令检查这段代码返回的地址是否正确时,它第一次显示正确。但是当执行其他一些程序时,这个地址会自动改变。我应该怎么做才能保持这个环境变量的地址不变?我将这个地址用于缓冲区溢出,但由于每次运行它都会不断变化,因此攻击永远不会成功。有什么建议么?