我有一个环境变量,我正在尝试获取它的内存地址。我有
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
?