C ++ не может получить доступ к PEB LDR InLoadOrderModuleList - PullRequest
0 голосов
/ 03 апреля 2020

Я новичок в C ++ и windows. Я пытаюсь распечатать все три списка модулей PEB_LDR_DATA (InLoadOrderModuleList, InMemoryOrderModuleList, InInitializationOrderModuleList).

После того, как я понял, что Microsoft показывает только структуру InMemoryOrderModule_DR_MD_L_B_100_5_5_5_5_5_5_5_DATA это более подробная структура.

Мне удалось получить доступ к InMemoryOrderModuleList и распечатать список модулей. Получение первого модуля в InMemoryOrderModuleList:

// ldrData data type is PPEB_LDR_DATA
PLIST_ENTRY inMemoryOrderModuleList = &ldrData->InMemoryOrderModuleList;
PLIST_ENTRY currentitem_InMemoryOrderModuleList = inMemoryOrderModuleList->Flink;
LDR_DATA_TABLE_ENTRY inMemoryOrderModuleListItem = *(PLDR_DATA_TABLE_ENTRY)currentitem_InMemoryOrderModuleList;

Но при попытке доступа:

// ldrData data type is PPEB_LDR_DATA
PLIST_ENTRY inLoadOrderModuleList = &ldrData->InLoadOrderModuleList;

я получаю сообщение об ошибке:

class _PEB_LDR_DATA has no member InLoadOrderModuleList

Я знаю, что это не так правильный путь, но также пытался получить доступ к списку следующим образом:

PLIST_ENTRY inLoadOrderModuleList = (PLIST_ENTRY)(ldrData+ 0x0010);

inLoadOrderModuleList Flink и Blink имеют значение null.

Как получить доступ к спискам?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...