我有一个环境变量,我正在尝试获取它的内存地址。我有
memset(&buffer, 0x90, 517);
memcpy(&buffer[517-strlen(shellcode)],shellcode,strlen(shellcode));
setenv("EGG",buffer,1);
putenv(buffer);
printf("EGG address: 0x%1x\n", getenv("EGG"));
system("bash");
它打印出来的内存地址是0x804b00c。那看起来不正确。我用 GDB x/x 检查了它0x804b00c。它说无法访问内存0x804b00c。所以getenv基本上是给我垃圾内存。我打电话env来确保EGG变量已设置,确实如此。
为什么我不能得到内存地址EGG?