繁体   English   中英

如何使用设置为文件内容的环境变量在 GDB 下运行程序?

[英]How do I run a program under GDB with an environment variable set to the contents of a file?

如何在设置环境变量的情况下运行 gdb,如下例所示?

gdb (env -i SHELLCODE="`cat ~/shellcode.bin`" ./vulnerable)

一般情况下,可以在启动要调试的程序之前使用set environment命令

set environment MYVAR abc

但是,从您的问题来看,您似乎想从文件中获取环境变量的内容,而 GDB shell 无法做到这一点。 但是,您可以使用已设置的变量启动 GDB,并且在启动程序进行调试时将保留该变量。 您可以使用show environment命令验证这一点。

$ MYVAR="$(cat x.txt)" gdb ./vulnerable

或者:

$ export MYVAR="$(cat x.txt)"
$ gdb ./vulnerable

甚至使用env

$ env -i MYVAR="$(cat x.txt)" gdb ./vulnerable

然后:

(gdb) show environment MYVAR
MYVAR=...
(gdb) run

你可能想要检查你的 shellcode 是否不包含\\x00字节,因为这可能会导致一些问题(不是 100% 确定,因为我没有测试它)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM