Зареждане на DLL в чужд процес
Как да заредите DLL в чужд процес? Ще бъда много благодарен за всякакви отговори или връзки по този въпрос. Моля, не се позовавайте само на Джефри Рихтер – нямам възможност да чета книгите му. Ако знаете откъде да получите електронни версии на неговите книги - пишете или изпратете на [email protected] Благодаря предварително.
Например, поставете капан на събитие, подходящо за вашия случай. Вижте SetWindowHookEx.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WindowsключAppInit_DLLs- ще бъде зареден във всички GUI на програмата :)
статичен метод ви позволява или да добавите свой собствен код, който ще извика LoadLibrary; или променете таблицата за импортиране, така че на етапа на стартиране на exe-файла товарачът да зарежда нашата dll. Методът е добър с това, че не се изисква loader.exe за по-нататъшна работа - остават само програмата жертва и нашата dll. предимствата са и недостатъци :( изходният файл се променя, което със сигурност е лошо. особено ако трябва да инжектирате dll в няколко процеса.
във всеки случай, в зависимост от задачата, трябва да изберете подходящия метод.
статични (статичните методи са по-сложни и изискват разбиране на преносимия изпълним формат):
статичните методи са доста сложни за програмно изпълнение. това се дължи на факта, че различните линкери интерпретират pe (!) формата по различен начин. Като за начало препоръчвам обучение по hie.