WinXP PreSP3 - механика ring-3 -> ring-0
От: Bishops Castle  
Дата: 04.06.08 18:49
Оценка:
Не уверен, что вопрос в ту тему.
Спрашивал у гугла, на что получил ответ, что XP(неизвестно, про какой SP шла речь) переходит из пользовательского режима в режим ядра через шлюз INT 2Eh.
Ручное дизасемблирование же показало совершенно другой, совершенно непонятный результат. Функции NativeAPI вообще не вызывают прерывание 2Eh, а после загрузки смещения обработчика вызова выполняют переход на 7FFE0300h, а этот адрес находится в секции, у которой нет разрешения на исполнение(!) и непонятно каким макаром этот переход проскакивает. Более того, по адресу 7FFE0300h находится нечто странное
in al,90h
jmp FFFFFFF9h   ;(хм...)
in al,90h

Кто-нибудь владеет информацией, что это за непонятки, может я дизасемблил что не так?
Re: WinXP PreSP3 - механика ring-3 -> ring-0
От: Sergey Chadov Россия  
Дата: 04.06.08 19:24
Оценка:
Здравствуйте, Bishops Castle, Вы писали:

BC>Не уверен, что вопрос в ту тему.

BC>Спрашивал у гугла, на что получил ответ, что XP(неизвестно, про какой SP шла речь) переходит из пользовательского режима в режим ядра через шлюз INT 2Eh.

WinXP переходит в режим ядра через sysenter
--
Sergey Chadov

... << RSDN@Home 1.2.0 alpha rev. 685>>
Re: WinXP PreSP3 - механика ring-3 -> ring-0
От: Pavel Dvorkin Россия  
Дата: 05.06.08 03:56
Оценка: 6 (2)
Здравствуйте, Bishops Castle, Вы писали:

BC>Не уверен, что вопрос в ту тему.

BC>Спрашивал у гугла, на что получил ответ, что XP(неизвестно, про какой SP шла речь) переходит из пользовательского режима в режим ядра через шлюз INT 2Eh.

http://www.securitylab.ru/analytics/241543.php
With best regards
Pavel Dvorkin
Re[2]: WinXP PreSP3 - механика ring-3 -> ring-0
От: TarasCo  
Дата: 05.06.08 07:54
Оценка:
SC>WinXP переходит в режим ядра через sysenter

Правильно будет сказать, что WinXP переходит в режим ядра тем способом, который поддерживает процессор ( либо sysenter, либо int 2e ). В w2k в код ntdll был жестко зашит вызов int 2e, в XP — это регулируется специальной областью памяти процесса ( видимо, чтоб не плодить версии ntdll ), которую топикстартер не совсем удачно дизассемблировал.
Да пребудет с тобою сила
Re[3]: WinXP PreSP3 - механика ring-3 -> ring-0
От: Sergey Chadov Россия  
Дата: 05.06.08 16:10
Оценка:
Здравствуйте, TarasCo, Вы писали:

SC>>WinXP переходит в режим ядра через sysenter


TC>Правильно будет сказать, что WinXP переходит в режим ядра тем способом, который поддерживает процессор ( либо sysenter, либо int 2e ).

Ну строго говоря да, но я что-то плохо представляю WinXP на неподдерживающем sysenter процессоре
--
Sergey Chadov

... << RSDN@Home 1.2.0 alpha rev. 685>>
Re[3]: WinXP PreSP3 - механика ring-3 -> ring-0
От: gear nuke  
Дата: 05.06.08 20:57
Оценка:
Здравствуйте, TarasCo, Вы писали:

TC>в XP — это регулируется специальной областью памяти процесса ( видимо, чтоб не плодить версии ntdll ), которую топикстартер не совсем удачно дизассемблировал.


Скорее, потому что KUSER_SHARED_DATA.SystemCall инициализируется из ядра.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.