Acceder a la tabla con las posiciones en memória donde el loader carga las librerias
El loader tiene una tabla (_rtld_global), que está definida en el archivo ldsodefs.h (
readelf -s /lib/ld-linux.so.2 | grep _rtld_global
8: 00016000 1080 OBJECT GLOBAL DEFAULT 16 _rtld_global@@GLIBC_PRIVATE
24: 00015ca0 460 OBJECT GLOBAL DEFAULT 13 _rtld_global_ro@@GLIBC_PRIVATE
Para encontrar este código hemos partido de la función dl_open, definida como _dl_open (
dl-open.c: _dl_open() : errcode = _dl_catch_error (&objname, &errstring, dl_open_worker, &args);
dl-error.c: _dl_catch_error() :(*operate) (args);
dl-open.c: dl_open_worker() : GL(dl_loaded)
ldsodefs.h: # define GL(name) _rtld_global._##name
0 Comments:
Publicar un comentario
<< Home