Боюсь, что с подобным тестом ничего не выйдет. Программно нельзя отключить/включить TLB. Единственное, что можно делать - это постоянно сбрасывать...
<>
Требуется в драйвере выделять память с заданным размером страниц. Т.е. требуется, чтобы память была выделена либо 4кб-страницами, либо 4мб-...
n0name Дааааа.... Хорошо что не я сейчас эту программу пишу. Апшипки бы потом полгода отлавливал :))) Где 2 байта, там и все 4 :)
n0name А я уже целую картину представил, как потом надо будет еще ThreadHandle копировать и т.д. :))) cc 0x87C - не похоже на адрес. Запости дамп...
<затупил>
Стопудово Peb заполняется полностью еще до вызова ZwCreateThread(), в том числе все строки.
ReadProcessMemory(ProcessHandle, RtlUserProcParams.ImagePathName.Buffer, wszBuffer, RtlUserProcParams.ImagePathName.Length, &BytesCount);...
В CreateProcessW перед NtCreateThread вызывается функция BasePushProcessParameters, которая и заталкивает PEB в адресное пространство нового...
typedef struct _UNICODE_STRING { ULONG Length; ULONG MaximumLength; PWCHAR Buffer; // ---- указатель на имя!!! Читай по этому адресу Length байт }...
Поковырял еще эту штуку. Оказалось, что в PFN для Cr3 в поле PteAddress лежит вместо виртуального адреса PTE некое странное число. Например, PFN =...
Прочитай ImagePathName также как PEB через ReadProcessMemory
А такой результат получаешь только на новых процессах или на существующих тоже?
Ну судя по интеловским докам, для PAE виртуальный адрес Cr3 можно получить так: MmGetVirtualForPhysical(Cr3 & 0xFFFFFFE0) Но...
Естественно, что код выглядит немного по-другому. Это просто выражение идеи, каким образом он работает. Как-никак Wasm.ZEN :))
Эта функция поддерживается начиная с WinXP. Лоадер не может зарезолвить статический импорт и поэтому ругается
Еще один вопрос в тему. Как можно заставить систему выделить память в больших или маленьких страницах?
WinNT или Win2k sources. Ссылки по форуму пробегали, правда там метров 200 качать надо
А как тогда система определяет виртуальный адрес PDPT? Может быть она, конечно, вообще не использует cr3, а хранит виртуальный адрес где-нибудь в...
Не удается с включенным PAE получить виртуальный адрес для Page Directory Pointer Table (физический адрес в Cr3). Cr3 = 0x0a240020...
Имена участников (разделяйте запятой).