Содержание материала

DLL

 

В каждом процессе в системе есть копия ntdll.dll. Это значит, что мы

можем перехватить любую функцию этого модуля при инициализации процесса.

Но как быть с функциями из других модулей, например, kernel32.dll или

advapi32.dll? Есть несколько процессов, у которых есть только ntdll.dll.

Все остальные модули могут быть загружены динамически в середине кода после

перехвата процесса. Вот почему мы должны перехватить LdrLoadDll, которая

загружает новые модули.

 

NTSTATUS LdrLoadDll(

PWSTR szcwPath,

PDWORD pdwLdrErr,

PUNICODE_STRING pUniModuleName,

PHINSTANCE pResultInstance

);

 

Наиболее важно для нас pUniModuleName - имя модуля. pResultInstance

будет адресом модуля, если вызов был успешен.

Мы вызовем оригинальную LdrLoadDll и затем перехватим все функции в

загруженном модуле.

  

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить