J'ai un fichier ELF exécutable, qui utilise la bibliothèque lib.so, et ce fichier ELF appelle la fonction Func1 de lib.soComment puis-je accrocher la fonction c du fichier ELF, qui utilise la bibliothèque .so sous Linux?
J'ai besoin d'accrocher cette fonction, donc elle sera remplacée par ma fonction, qui fait autre chose. Comment puis-je faire cela sans changer ce fichier exécutable?
En effet. Jetez un oeil à la source de l'utilitaire 'fakechroot' pour un exemple d'une bonne façon d'utiliser exactement cette technique pour remplacer les appels de bibliothèque standard comme' open() 'avec quelque chose d'autre. –
hey, merci, c'est une excellente réponse! – dsfdf
@Sam Hartman pour être clair - '-Bsymbolic' arrête seulement les appels à' func1' * dans * 'lib.so' d'être interposé (" hooked "). Vous pouvez toujours interposer des appels de 'executable' à' func1' ('-Bdirect' était une expérience antérieure qui a arrêté cette dernière option, et a cassé trop de choses pour survivre.) –