herm1t LIVE!ng room - nspr4!PR_Write [entries|archive|friends|userinfo]
herm1t

[ website | twilight corner in the herm1t's cave ]
[ userinfo | ljr userinfo ]
[ archive | journal archive ]

nspr4!PR_Write [Mar. 9th, 2015|03:05 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
LinkLeave a comment

Comments:
[User Picture]
From:[info]geladen
Date:March 9th, 2015 - 05:10 pm
(Link)
ишьты, хитренько. мерси.

> В следующий раз еще расскажу [...]

а вот это бы я тоже с большим интересом почитал.
[User Picture]
From:[info]herm1t
Date:March 9th, 2015 - 05:27 pm
(Link)
Если коротко, то либа инжектится целиком __libc_dlopen_mode(..., RTLD_LAZY), именно LAZY, а не NOW, в конструкторе либа из своего _DYNAMIC берет GOT, из GOT[1] - link_map, из link_map - _DYNAMIC процесса, из него .dynsym, .dynstr, .rela.plt, в RELA находится нужная функа (ELF64_R_SYM(rel[i].r_info) - это индекс в .dynsym), а r_offset указывает на ее GOT-entry, который нужно сохранить и затереть указателем на свою функу. Как-то так.
[User Picture]
From:[info]geladen
Date:March 9th, 2015 - 06:12 pm
(Link)
о! мерси!
помусолю на досуге.
[User Picture]
From:[info]herm1t
Date:March 13th, 2015 - 05:13 pm
(Link)