Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Это под мд98. А в 2000 есть аналогичный способ прыгнуть в r0? 14.02.02 14:31 Число просмотров: 1001
Автор: z0 <z0> Статус: Member
|
> pCallgate->Selector = 0x28;
вот тут надо быть очень осторожным
я даже так делал - искал несколько дыр в GDT и делал свои дескрипторы (вернее алиасы) для CS и SS с PL=0
> _asm Call FWORD PTR [CallgateAddr]
не забудь что для SS PL должен совпадать с PL CS
здесь есть такие решения:
1) все пройти на IF=0
2) дать свой SS но помнить что при аппаратном прерывании на PL=0 SS не перегружается автоматически
3) работать с SS_0 текущего TSS (для виндов он единственный вроде)
с моей практической точки зрения 2 и 3 варианты дают редкие/странные глюки под виндой
> // нет свободных!
а вот эту интереснейшая ситуация - сам видел многократно - разные версии чикаги дают разный начальный и по-разному меняют размер GDT более того возможны ситуации когда в системе не одна GDT и кстати ситуация теоретически разрешима бекапом каких-то позиций в GDT (например СВОИХ!!! CS/SS)
по-поводу NT/2000 - этот номер не пройдет по защите страниц и вообще никакой (проверено) такой номер не пройдет кроме очень билд-зависимых срывов стека (например при вызове int 2e)
я делал так: патчил NTLDR
но тебе же надо в прогу
|
|
|