Виндбг "! Chkimg" сообщает о ложных срабатываниях на W10?

Я разрабатываю очень сложный драйвер для последней версии Windows 10-x64 (встроенный /IoT-дистрибутив). Так как у меня есть некоторые сбои (моя ошибка), я попытался использовать команду! Chkimg, чтобы исследовать повреждения памяти. Я обнаружил, что команда всегда сообщает о множестве ошибок в модуле NT, главным образом в функциях диспетчера памяти. Это не связано ни с моим драйвером, ни с каким-то странным сторонним драйвером, как это происходит и при новой установке. Вот некоторая строка вывода:

0: kd> !chkimg -d -lo 50
    fffff803bca1a594-fffff803bca1a595  2 bytes - nt!MiDuplicateCloneLeaf+38
    [ 80 fa:00 c1 ]
    fffff803bca1b24f-fffff803bca1b250  2 bytes - nt!MiExpandPagedPool+83 (+0xcbb)
    [ 80 f6:00 af ]
(...enough, enough!)

Я проверил затронутый код (хорошо, некоторые моменты) и заметил, что большинство ошибок очень похожи. Пример:

 nt!MiDuplicateCloneLeaf:
...
fffff803`bca1a58e 48b90000000000c1ffff mov rcx,0FFFFC10000000000h

"Оригинальный" код будет:

nt!MiDuplicateCloneLeaf:
...
fffff803`bca1a58e 48b90000000080faffff mov rcx,0FFFFFA8000000000h

Я предполагаю, что то, что я заметил, - это эффект некоторой рандомизации представления корня пейджинга в ядре (в частности, позиции самореференции PML4). Я прав? Это хорошо известная проблема или в моей машине есть что-то очень странное?

Короче, может кто-нибудь объяснить, что происходит?

0 ответов

Другие вопросы по тегам