如何解决如何在GDB下运行环境变量设置为文件内容的程序?
如何在设置了环境变量的情况下运行gdb,如下面的示例所示?
gdb (env -i SHELLCODE="`cat ~/shellcode.bin`" ./vulnerable)
解决方法
通常,您可以在启动要调试的程序之前使用set environment
command:
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%)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。