Wieso LD_PRELOAD Fehlermeldung obwohl es funktioniert?



  • Hi!
    Ich nutze LD_PRELOAD um einige APIs zu hooken.

    Allerdings bekomme ich immer Fehlermeldungen der Art

    ERROR: ld.so: object '/home/ethon/foo.so' from LD_PRELOAD cannot be preloaded: ignored.
    
    ERROR: ld.so: object '/home/ethon/foo.so' from LD_PRELOAD cannot be preloaded: ignored.
    
    ERROR: ld.so: object '/home/ethon/foo.so' from LD_PRELOAD cannot be preloaded: ignored.
    
    ERROR: ld.so: object '/home/ethon/foo.so' from LD_PRELOAD cannot be preloaded: ignored.
    
    ERROR: ld.so: object '/home/ethon/foo.so' from LD_PRELOAD cannot be preloaded: ignored.
    
    ERROR: ld.so: object '/home/ethon/foo.so' from LD_PRELOAD cannot be preloaded: ignored.
    
    ERROR: ld.so: object '/home/ethon/foo.so' from LD_PRELOAD cannot be preloaded: ignored.
    

    Aber der Hookcode wird trotzdem asgeführt, dh. früher oder später funktioniert das preloaden.

    Wie kann ich das Problem eingrenzen? Das Ganze ist Teil einer Software die ich verkaufen möchte, solche Fehlermeldungen verwirren den Nutzer nur unnötig.

    Danke... Mfg,
    Ethon



  • Versuch es mit

    LD_DEBUG=all .../exec
    

    mehr dazu unter 'man ld.so'.

    Viele Grüße



  • Danke. 🙂
    Ursache des Problems: Ich habe ein 64bit Linux und lasse dort eine 32bit Windows-Executable per Wine laufen. Allerdings ist der Wine-Loader ja 64bit und das preloaden von 32bit Bibliotheken klappt natürlich nicht. Sobald dann die "richtige" 32bit-Executable geladen ist, klappt das preloaden.


Anmelden zum Antworten