Завантаження 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 - portable executable):
статичні методи є досить складними для програмної реалізації. пов'язано це про те, що різні лінкери по-різному трактують формат pe (!). Спочатку рекомендую потренуватися в hiew.