Blog. Just Blog

Получение списка модулей процесса

13.06.2023 | Категория: Образ мышления: Assembler | Автор: ManHunter
Для работы с процессами в Windows есть множество различных способов, например, ранее мы уже разбирали получение списка загруженных DLL с помощью PEB_LDR_DATA. Сегодня получим список DLL процесса при помощи недокументированных отладочных функций. Пугаться не надо, с ними мы уже работали при получении динамической памяти процесса.

Начинаем с описания недостающих данных. Структура DEBUG_BUFFER есть по ссылке выше, а остальное вот.
  1. struct DEBUG_MODULE_INFORMATION
  2.         Reserved         rd 2
  3.         Base             dd ?
  4.         Size             dd ?
  5.         Flags            dd ?
  6.         Index            dw ?
  7.         Unknown          dw ?
  8.         LoadCount        dw ?
  9.         ModuleNameOffset dw ?
  10.         ImageName        rb 100h
  11. ends
  12.  
  13. PDI_MODULES = 0x01
Быстренько повторим теорию. Для приема отладочной информации процесса первым делом надо подготовить буфер в памяти, это делается с помощью недокументированной функции RtlCreateQueryDebugBuffer. Дальше заполняем его данными с помощью недокументированной функции RtlQueryProcessDebugInformation, как это делали ранее при работе с кучей. Стоит упомянуть, что огромный плюс этой функции в том, что ей для работы требуется только идентификатор процесса, сам процесс открывать не надо. Для работы с другими процессами достаточно будет привилегии SeDebugPrivilege.

Читать статью целиком »
Просмотров: 518 | Комментариев: 0

Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.09 сек. / MySQL: 1 (0.0121 сек.) / Память: 4.5 Mb
Наверх