#windows #kernel #driver #dump #portable-executable
#Windows #ядро #драйвер #дамп #переносимый-исполняемый
Вопрос:
привет, я дамп другого процесса в драйвере ядра
и используйте KeStackAttachProcess для изменения текущего контекста драйвера
после изменения адреса пользовательского режима, как можно найти базовый адрес текущего процесса, мне нужен базовый адрес для приведения его к PIMAGE_DOS_HEADER (и проанализировать его для поиска разделов), можно использовать PEB?
есть другое решение?
Ответ №1:
Для этого есть специальная функция API:
NTKERNELAPI
PVOID
PsGetProcessSectionBaseAddress(
__in PEPROCESS Process
);
И вы можете использовать поле SectionBaseAddress в структуре EPROCESS:
0x128 SectionBaseAddress : 0x00400000 Void
Он может отличаться в разных версиях ОС.
Комментарии:
1. я не могу найти PsGetProcessSectionBaseAddress в WDK, он отменен? и использовать его нормально?
2. Да, это undoc. Просто проверьте, существует ли эта функция в версиях ОС, которые вы хотите поддерживать. Он существует на моих компьютерах w2k3 и w7, но я не уверен в более ранних системах.