Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос

8.3K
06 сентября 2006 года
IT-Shark
33 / / 25.05.2006
Доброго времени суток!

Делаю так:

typedef void asmfunc();
asmfunc* OldSysenterEntry;
void SysenterHook();
/* ... */

// Внутри DeviceControlRoutine
/* ... */
__asm
{
mov ecx, 0x176
rdmsr
mov OldSysenterEntry, eax
mov eax, SysenterHook
xor edx, edx
wrmsr
}
/* ... */

// Ну и наконец

void __declspec(naked) SysenterHook()
{
__asm
{
jmp OldSysenterEntry
}
}


Вроде бы все сделано в лучших русских традициях, но почему то при попытке переписать SYSENTER_MSR_EIP компьютер перезагружается... Ну вообщето трудно сказать, когд именно он перехагруэаеться, то ли на wrmsr то ли на jmp OldSysenterEntry... Но то что перехагружается это факт...
Вопрос, почему?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог