Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Уточнение 15.11.02 18:34 Число просмотров: 2095
Автор: amirul <Serge> Статус: The Elderman
|
> Вообще-то PEB в NT-ях всегда отмаплен по адресу 0x7ffdf000 > и занимает всю страницу. Под ним (0x7ffde000, 0x7ffdd000 > ...) находятся TEB-ы 0-го, 1-го и т.д. потоков процессы. Здесь я не совсем уверен насчет размера (может и не страница), но общий принцип именно такой. Хотя вроде самое логичное - выделить именно страницу
> #include <winnt.h> // Та которая в NTDDK > > void > main() { > PTEB pTeb; > PPEB pPeb; > PPEB_LDR_DATA pLdrData; > PLIST_ENTRY pCurrentEntry; > PLDR_MODULE pModule; > > __asm { > mov pTeb, fs:0x18 > } > pPeb = pTeb->Peb; > pLdrData = pPeb->Ldr; > pCurrentEntry = InLoadOrderModuleList.Flink; > while (pCurrentEntry != > &Peb->Ldr->InLoadOrderModuleList && pCurrentEntry != > NULL) { > pModule = CONTAINING_RECORD(pCurrentEntry, LDR_MODULE, > InLoadOrderModuleList); > > // Использование pModule > pCurrentEntry = pCurrentEntry->Flink; > } > --- Прогу не тестил. Просто для примера - она даже не была ни в одном development environmente - набирал прямо в багтраковской форме
|
|
|