Communauté RSS DEV

Explication de LD_PRELOAD

La variable d'environnement LD_PRELOAD dans les systèmes Unix-like permet aux utilisateurs de charger une bibliothèque partagée avant les autres lors de l'exécution d'un programme. Cela peut être utilisé pour remplacer des fonctions dans des bibliothèques existantes ou injecter du code personnalisé dans des applications. Le lien dynamique est responsable du chargement de l'image du programme et des bibliothèques partagées, puis démarre l'exécution. Sous Linux, le lien dynamique est ld-linux.so, tandis que sous FreeBSD, c'est ld-elf.so. LD_PRELOAD ajoute une liste de bibliothèques partagées à charger par le lien dynamique, permettant la substitution de fonctions. Des exemples d'utilisation de LD_PRELOAD incluent la décompression transparente de fichiers et la substitution des fonctions malloc et read/write. LD_PRELOAD peut être utilisé pour les tests, les correctifs rapides, l'observabilité et les implémentations alternatives. Cependant, cela a des implications de sécurité, comme la substitution des appels système, et Linux et FreeBSD ont des mesures pour prévenir les mauvais usages. LD_PRELOAD peut être utilisé de manière alternative, comme l'option de ligne de commande --preload et le fichier /etc/ld.so.preload. Enfin, eBPF est une alternative à LD_PRELOAD, mais elle est plus restreinte et n'introduit pas les mêmes problèmes de sécurité.
dev.to
LD_PRELOAD explained
Create attached notes ...