GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è il trucco LD_PRELOAD?

Se imposti LD_PRELOAD al percorso di un oggetto condiviso, quel file verrà caricato prima qualsiasi altra libreria (incluso il runtime C, libc.so ). Quindi, per eseguire ls con il tuo malloc() speciale implementazione, fai questo:

$ LD_PRELOAD=/path/to/my/malloc.so /bin/ls

Puoi sovrascrivere i simboli nelle librerie stock creando una libreria con gli stessi simboli e specificando la libreria in LD_PRELOAD .

Alcune persone lo usano per specificare librerie in posizioni non standard, ma LD_LIBRARY_PATH è meglio per quello scopo.


Con LD_PRELOAD puoi dare la precedenza alle librerie.

Ad esempio puoi scrivere una libreria che implementa malloc e free . E caricandoli con LD_PRELOAD i tuoi malloc e free verranno eseguiti anziché quelli standard.


Linux
  1. Qual è il significato di *nix?

  2. Qual è il concetto di vruntime in CFS

  3. Cos'è un file .so.2?

  4. Cos'è un file .so?

  5. Qual è la differenza tra una chiamata di libreria e una chiamata di sistema in Linux?

Cosa rende Linux il sistema operativo sostenibile

Che cos'è la shell in Linux?

iptables vs nftables:qual è la differenza?

Qual è il comando kill in Linux?

Che cos'è la vulnerabilità di Logjam?

Qual è la differenza tra chiamata di sistema e chiamata di libreria?