c - 如何在 GDB 下运行将环境变量设置为文件内容的程序?
问题描述
如何在设置环境变量的情况下运行 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% 肯定,因为我没有测试它)。
推荐阅读
- node.js - 删除引用节点 JS
- php - 摆脱 php 数组中的幻数
- python - 通过python脚本登录mt4账号
- javascript - 超过反应最大深度(未知原因)
- amazon-web-services - 如何使用控制台在 dynamoDb 中添加字段或列
- javascript - 反应重定向呈现空白页面
- android - 当我在 AndroidStudio 中上传矢量资产时,渐变没有停止信息
- ruby - 在 Ruby 2.7 中解构块参数中的哈希
- excel - 对象不支持此属性或方法 CheckBox ControlFormat.Value =1
- python - social-auth-app-django:刷新 access_token