如何仅将 LD_PRELOAD 应用于目标程序?

问题描述

我正在尝试调试堆损坏(使用 QIRA 调试器);仅适用于 Doug Lea 的 Malloc。

我尝试过以下操作:

malloc.so

我收到以下错误

错误:ld.so:无法预加载来自 LD_PRELOAD 的对象“./malloc.so”(错误的 ELF 类:ELFCLASS32):忽略。

这是因为加载程序尝试将 x86 qira 链接到 x64 LD_PRELOAD

我只想将 ./program 应用于 qira,而不是 env;我已尝试使用 @ViewChild 命令,但无法使其正常工作。

提前致谢!

解决方法

看起来您可以在环境中设置 QEMU_SET_ENV=LD_PRELOAD=./malloc.so 来影响进程。

我会注意到,您可以通过设置 QEMU_UNSET_ENV=FOO,BAR 类似地取消设置目标的环境变量。