2010-08-31 3 views
3

J'ai un objet partagé ELF, et je veux le modifier afin que les appels à la fonction système memcpy soient réellement acheminés vers une version personnalisée de memcpy.Comment faire pour remapper un symbole pour appeler une autre fonction

Ive fait des recherches et j'ai lu sur PLT Redirection et ELF infection, mais im toujours pas sûr comment je peux accomplir mon objectif

Quelqu'un peut-il me donner quelques indices et des conseils ou des précisions sur la Redirection PLT et ELF infection

Cordialement

Paul

+1

Notez que memcpy() peut être intrinsèque (inline) dans ce .so et ne peut donc pas être remplacé. – blaze

Répondre

1

Avez-vous essayé l'option -wrap à ld lorsque vous liez votre exécutable? Il devrait rediriger le symbole afin que tous les appels à la fonction d'origine, y compris ceux à l'intérieur des bibliothèques, iront à votre remplacement.

Voir this example.

[Edit:. L'intervenant ci-dessus a raison de souligner que si la bibliothèque inline appelle à Memcpy, vous n'avez pas recours à court de reconstruire la bibliothèque]

Questions connexes