[so] more questions about tema 2
George Adrian Drumea
so@cursuri.cs.pub.ro
Sun, 14 Nov 2004 18:53:26 +0200
AD> Legat de asta. Dezavantaje majore :
AD> 1) Hooking-ul se va intampla pentru fiecare Windows-based application. Mai
AD> mult pentru toate care folosesc USER32.dll, nu doar pentru cele care au
AD> biblioteca (noastra) in directorul curent (fie ele lansate doar dintr-un
AD> cmd.exe ... si cum a mai fost vorba ..)
...pentru fiecare aplicatie linkata cu user32.dll care poate incarca
dll-ul respectiv (daca nu-l pui in path atunci se incarca numai pt
aplicatiile din acelasi director cu el).
AD> 2) Odata injectat, codul nu mai poate fi scos decat printr-un reboot !
Nimeni nu te impiedica sa ai un mecanism prin care sa-i spui dll-ului
tau sa restaureze pointerii din IAT si sa se descarce. Din nou, daca
nu ai dll-ul in path nu apare aceasta problema.
AD> Parerea mea este ca mult mai utila ar fi injectarea prin
AD> CreateRemoteThread() folosind tehnica de alterare a IAT (Import Address
AD> Table). Are toate avantajele posibile :
AD> 1) Nu creeaza un System-Wide hook, ca in cazul de mai sus. Super, pentru ca
AD> scenariul nici nu-l cere.
AD> 2) Nu necesita reboot pentru descarcare
AD> 3) Nu necesita code overwriting, sau proxy DLL injection
AD> 4) last but not least este destul de bine documentata
Si dezavantajul major: e mai complicat sa ai injectare automata
(sincrona cu lansarea) in procesele noi lansate (vezi mailurile anterioare).
--
Best regards,
George mailto:georgedrumea@rdslink.ro