- przeglądam tablice relokacji
DT_RELA
iDT_JMPREL
ze wszystkich bibliotek
przechodzonych przezdl_iterate_phdr
- nadpisuję tablicę
DT_PLTGOT
wykorzystując offsety z tablicy relokacji,
przed pisaniem poDT_PLTGOT
zmieniam uprawnienia do pisania po nim za
pomocąmprotect
- jako adres nadpisywanego symbolu zwracam wartość funkcji
dlsym(RTLD_NEXT, nazwa_funkcji)
./configure && make
- plik
libinterceptor.so
powinien powstać w katalogusrc/.libs