Re: Переход на ring 0
От:
Владимир Гренадеров
Дата:
13.04.02 18:01
Оценка:
10 (1)
Здравствуйте kong, Вы писали:
K>Привет.
K>Очень нужен пример перехода на ring0 без написания драйвера, причем как под win9x так и под Win2K. Наилучшим будет пример на С++ (Visual C++), но поможет и на асме.
Вот пример (насчет w2k не знаю):
push esp 0 0
push offset thread_ring3_code
push 0 0
callW CreateThread ; создаем новую нить
xchg ebx, eax ; EBX=хендл нити
push offset context
push ebx
callW GetThreadContext; получаем контекст нити
mov context._segcs, 28h ; меняем CS:EIP
mov context._eip, offset ring0_code
push offset context
push ebx
callW SetThreadContext; устанавливаем контекст
jmp $ ; чего-то ждем
thread_ring3_code: push 1
call Sleep ; пауза
jmp thread_ring3_code
ring0_code: push ss ss ; мы в нуле!
pop ds es
...
OK
Переместить
Удалить
Выделить ветку
Проголосовать
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить
Проголосовать
Заголовок: