Bibliothèque partagée proxy (sharedlib, shlib, etc.) pour ELF?

Sous Windows, il est plus ou moins courant de créer des “DLL proxy” qui remplacent la DLL d’origine et transmettent ses appels (après toute action supplémentaire, le cas échéant). Vous pouvez lire à ce sujet ici et ici par exemple.

Cependant, la culture shlib munging sous Linux est très différente. Cela commence par le fait que LD_PRELOAD est la fonctionnalité intégrée de ld.so sous Linux, qui injecte simplement shlib dans le processus et utilise les symboles qu’elle définit comme remplaçants. Et cette technique “d’injection” semble définir toute la direction de la pensée – voici un outil de piratage ELF typique ou cette question , où gentleman semble avoir le même cas d’utilisation que moi, mais commence par demander comment il peut corriger les binarys existants.

Non merci. Je ne veux pas injecter ou modifier quelque chose qui n’est ni le mien. Tout ce que je veux faire, c’est créer un shlib proxy autonome qui appellera l’original. Idéalement, il y aurait un outil qui pourrait être alimenté avec le .so original et créer un code source C qui ne ferait que redirect les fonctions de l’original, tout en me permettant de remplacer facilement tout ce que je veux. Alors, où est cet outil? 😉 Merci.

    apitrace est un outil qui couvre le traçage détaillé des bibliothèques graphiques (OpenGL, DirectX) pour plusieurs plateformes. C’est probablement trop détaillé et complexe pour une solution générique, mais fournit au moins quelques références et affinités.