САБЖ Есть страница памяти в ядре По умолчанию она доступна только на чтение (как пример - сдт) Нужно сделать так, чтобы при включенном WP-бите, запись в этот регион не вызывала БСОД Вопрос - как изменить аттрибуты страницы памяти? заранее благодарен
PTE->Write = 1 если страница не является видом секции (ZwMapViewOfSection не было для этого VA) и является неподкачиваемой.
zoool Sheph zoool очень интересно! действительно оба метода работают??? или так просто сказал??? PAGE:0049C86C ; int __stdcall MiSecureVirtualMemory(PVOID Address, SIZE_T Length, int, int) PAGE:0049C86C _MiSecureVirtualMemory@16 proc near ; CODE XREF: MmSecureVirtualMemory(x,x,x)+E PAGE:0049C86C push 40h PAGE:0049C86E push offset dword_414DA0 PAGE:0049C873 call __SEH_prolog PAGE:0049C878 mov ecx, [ebp+Address] PAGE:0049C87B mov eax, [ebp+Length] PAGE:0049C87E add eax, ecx PAGE:0049C880 mov [ebp+var_48], eax PAGE:0049C883 cmp eax, _MmHighestUserAddress PAGE:0049C889 ja loc_50B3EA ... PAGE:0050B3EA loc_50B3EA: PAGE:0050B3EA xor eax, eax PAGE:0050B3EC jmp loc_49CADC ... PAGE:0049CADC loc_49CADC: PAGE:0049CADC call __SEH_epilog PAGE:0049CAE1 retn 10h PAGE:0049CAE1 _MiSecureVirtualMemory@16 endp
или править PTE или btr cr0,10h других вариантов нету btr cr0,10h на многопроцессорной системе надо гардить, реально успевает зараза переключиться и упасть