Je travaille sur un projet où je dois utiliser LD_PRELOAD
pour charger des bibliothèques dans l'espace mémoire.Disposition de la mémoire du processus de vidage pendant le temps de chargement
Il est comme:
LD_PRELOAD="./libapp.so" ./my_app
En raison de certaines raisons (je travaille en fait sur quelques bidouillages binaire), je dois savoir l'adresse mémoire (pas un symbole) de certaines fonctions (disons, foo
) dans libapp.so
et instrument le code binaire de my_app
avant l'exécution.
Cependant, en raison de ASLR
(randomisation de disposition d'espace d'adresse), chaque fois libapp.so
serait chargé dans l'adresse de mémoire différente, et je suis incapable de connaître l'adresse de mémoire de foo
avant l'exécution.
Je pense à intercepter en quelque sorte le temps de chargement, la lecture de l'adresse mémoire de libapp.so
, effectuer une instrumentation sur my_app
avec l'adresse mémoire de foo
, puis chargez my_app
dans l'espace mémoire.
Alors voici ma question: comment intercepter le processus de chargement et acquérir l'adresse mémoire de libapp.so
?