Failed in using LD_PRELOAD to hook mmap system call in qemu(through libvirt)
Daniel P. Berrangé
berrange at redhat.com
Thu Jan 6 13:47:58 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
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.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
More information about the libvirt-users
mailing list