使用Pwntools与GDB调试Linux进程时环境变量设置异常问题
Pwntools GDB调试时环境变量设置的误区
问题场景
使用Pwntools调试Linux二进制程序时,通过env参数设置目标进程的环境变量,但在GDB中执行show environment看不到预期变量,代码如下:
from pwn import * elf = ELF("/usr/bin/su") gs = 'show environment' dbg = gdb.debug([elf.path], gdbscript=gs, env={"Z": "AAAA"}) dbg.interactive()
核心误解
GDB的show environment命令展示的是GDB自身的环境变量,而非被调试的目标进程的环境变量,因此看不到通过env参数设置的变量属于正常现象,并非env参数失效。
验证方法
要确认目标进程的环境变量是否正确设置,可通过以下步骤:
- 在GDB中执行
info inferiors命令,获取被调试进程的PID - 查看
/proc/<pid>/environ文件,该文件以\0为分隔符存储进程的所有环境变量,能看到设置的Z=AAAA
内容的提问来源于stack exchange,提问作者Simon Huenecke
相关产品推荐
相关产品推荐

