回复: Failed in using LD_PRELOAD to hook mmap system call in qemu(through libvirt)

Xiong。 sobxiong at qq.com
Fri Jan 7 02:29:25 UTC 2022


On Thu, Jan 06, 2022 at 07:44:25PM +0800, Xiong。 wrote:
> Dear sir: 
>     I want to hook mmap system call in qemu, and I use
> libvirt to passthrough the environment argument like this:
>  <qemu:commandline>
>    <qemu:env name='LD_PRELOAD' value='/glibcHookMMAP.so'/>
>  </qemu:commandline>
> But it failed. I can hardly find out what is the matter!
> The log in libvirt like this:ERROR: ld.so: object
> '/glibcHookMMAP.so' from LD_PRELOAD cannot be preloaded
> (cannot open shared object file): ignored.    Firstly,
> I think it's the problem of authority. But the file
> glibcHookMMAP.so has been done with command `chmod 777`.
> My environment is as follows: Ubuntu 18.04.2 Linux
> 5.4.0-92 libvirt 4.0.0 qemu 2.11.1

On Thu, Jan 06, 2022 at 09:47:25PM +0800, Daniel P. Berrangé。 wrote:
> Aside from normal file permissions, the other likely problem on Ubuntu
> will be AppArmor policy. It likely won't allow QEMU to load files from
> the / directory - if you put your .so in /usr/local/lib it might
> work.



On Thu, Jan 07, 2022 at 09:27:25AM +0800, Xiong。 wrote:
> I have a try, but it does not work and makes the same warning:
> ld.so: object '/usr/local/lib/glibcHookMMAP.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
> However, I use qemu command directly and it works. Command is like this:
> sudo LD_PRELOAD=/usr/local/lib/glibcHookMMAP.so qemu-system-x86_64 -enable-kvm ...(other args).
> After that, I get print information with my hook program. And I think the problem is in passing the environment args in libvirt.


Sorry, I find out what's the matter. The AppArmor policy limits the libvirt, and modifing configuration works.
Thank you for your advise!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20220107/a981b7b8/attachment.htm>


More information about the libvirt-users mailing list