supernewbie
25.08.2013, 23:09
Суть:
Процессор AMD64,
маленький драйвер написал на VS
Заменяю системный syscall handler своим, а в нем прыжок обратно в системный
Win 8.1 x64, система работает 40-60 минут, потом BSOD указывающий прямо на MSR 0xC0000082
(BSOD Error Code: 0x00000109)
C код:
...
SetOldSysenterEntry(__readmsr(0xC0000082));
__writemsr(0xC0000082,&SyscallHandler);
...
MASM:
...
OldSysenterEntry dq 0
.code
SetOldSysenterEntry PROC
mov OldSysenterEntry, rcx
ret
SetOldSysenterEntry ENDP
SyscallHandler PROC
jmp [OldSysenterEntry]
SyscallHandler ENDP
...
из-за чего это может происходить?
где-то в инете нашел что винда сама смотрит за изменением регистров или своего кода и при обнаружении генерит исключение
Добавлено через 4 часа 58 минут
ну за**ись, http://msdn.microsoft.com/en-us/windows/hardware/gg487350.aspx
Patching any part of the kernel (detected only on AMD64-based systems)
...
If your driver must perform a task that you think cannot be accomplished without patching the kernel, then contact KPPinput@Microsoft.com for help in finding a documented and supported alternative.
...
ща напишу им, ага...
Добавлено через 16 минут
However, patch protection is automatically disabled when a kernel debugger is attached to the system.
кажись вот оно
Добавлено через 2 часа 20 минут
черт, не охото под дебагером вечно сидеть, есть какие ещё варианты
помимо использования Intel процессора или установки Windows 2000?
Процессор AMD64,
маленький драйвер написал на VS
Заменяю системный syscall handler своим, а в нем прыжок обратно в системный
Win 8.1 x64, система работает 40-60 минут, потом BSOD указывающий прямо на MSR 0xC0000082
(BSOD Error Code: 0x00000109)
C код:
...
SetOldSysenterEntry(__readmsr(0xC0000082));
__writemsr(0xC0000082,&SyscallHandler);
...
MASM:
...
OldSysenterEntry dq 0
.code
SetOldSysenterEntry PROC
mov OldSysenterEntry, rcx
ret
SetOldSysenterEntry ENDP
SyscallHandler PROC
jmp [OldSysenterEntry]
SyscallHandler ENDP
...
из-за чего это может происходить?
где-то в инете нашел что винда сама смотрит за изменением регистров или своего кода и при обнаружении генерит исключение
Добавлено через 4 часа 58 минут
ну за**ись, http://msdn.microsoft.com/en-us/windows/hardware/gg487350.aspx
Patching any part of the kernel (detected only on AMD64-based systems)
...
If your driver must perform a task that you think cannot be accomplished without patching the kernel, then contact KPPinput@Microsoft.com for help in finding a documented and supported alternative.
...
ща напишу им, ага...
Добавлено через 16 минут
However, patch protection is automatically disabled when a kernel debugger is attached to the system.
кажись вот оно
Добавлено через 2 часа 20 минут
черт, не охото под дебагером вечно сидеть, есть какие ещё варианты
помимо использования Intel процессора или установки Windows 2000?