Нереальный режим: преимущества и недостатки

Тема в разделе "WASM.ASSEMBLER", создана пользователем Govnodozer, 17 дек 2009.

  1. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Пусть код компилится как 32-битный, тогда к примеру
    xor eax,eax
    dec eax
    cmp eax,0FFFFh
    jz _16bit
    ; 32-bit code
    .........
    _16bit
    ........
     
  2. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    Medstrax
    А понятно, я думал просто что в 16 битном вообще не будут обрабатываться 32битные команды
     
  3. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Шансов мало, но попробовать можно. Как вариант - заходим в long mode, переключаемся в SMM, в образе контекста меняем CR0.PE на 0 , возвращаемся из SMM. Скорей всего нарвемся на shutdown )))
     
  4. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    В биосе есть ряд фунок, которые не будут работать под в86, т.к предполагают переход в протект мод
     
  5. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    тиха парни, не палимся.
     
  6. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    1) насчет "куски не отваливаются". Действительно "отваливаются", достаточно вспомнить в 64-бит о командах с двоично десятичной арифметикой
    2) "Любая перезагрузка CS" не меняет limit сегмента и его разрядность. Об этом еще Р.Коллинз писАл хз когда (c) _ВС_
     
  7. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Не понял ))) Откуда 17:09!?
     
  8. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    да сам хз, ща в профили подганю :derisive:
     
  9. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    сойдет, теперь :derisive: да и вообще может я сшаки живу, или где там -3 по Гринвичу
     
  10. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Обходится любая проблема. Смысл только какой?
    Если писать свои обработчики - проще написать мини ОС для PM32.
    Преимуществ больше, а работы столько же.
    Их меньше 1%. В основном функции 0х15 прерывания.
    Которые кстати PM32 задаче даром не нужны - работа с расширенной памятью и т.д...
    Угу, ты для начала хоть сколько-нибудь переносимый способ придумай как установить свой SMM обработчик, а потом идеи такие толкай.
    Да, да.
    Спасибо Intel за правильную архитектуру IA64.
    Которая сейчас ну вы сами знаете где... В лучшем случае на серверах.
    Что-то мне подсказывает что ты пишешь с машины с кривой архитектурой, а не с IA64.
    Чего так?
     
  11. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    cppasm
    Вообще-то про мегакривое расширение суперкривой архитектуры писал я. И от того, что я сижу на этой самой мегакриво-суперкривой, она менее кривой не становится. И я, кстати, не утверждал, что ИА-64 -- самая что ни на есть прямая архитектура; более того, я про неё вообще ни слова не сказал. Ну а повсеместное использование кривой процессорной архитектуры (ИА-32), как и кривой архитектуры вычислительной машины в целом (ПК), как и кривых ОС говорит лишь о том, что рынком движет не техническое совершенство изделия, а совершенно другие факторы.
     
  12. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Бит PE я и без SMM установить смогу. Мне бы L-бит в теневом CS установить из/для RM.

    Уже написали.
     
  13. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Абсолютно переносимый способ описала Рутковская. Пишем в память по адресу первого байта обработчика SMI#, потом вызываем SMI#, проц берет первую команду не из памяти SMM, а из кэша, куда мы только что пихнули свою команду. Про чипсет не надо знать вообще ничего. Это работает железно, проверял не раз и не два. Конечно багу рано или поздно пофиксят, а жаль :)
     
  14. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Я твой пост и цитировал :)
    Если всё кругом мега кривое, может стоит пересмотреть свои критерии?
    1. Вызов SMI# чипсетозависим
    2. адрес обработчика SMM не стандартизирован (не фиксирован)
    А так про чипсет знать вообще ничего не надо.
    Это пустые слова - пример где?
     
  15. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Лажа. Через local APIC заслать IPI самому себе - чипсет тут не при чем.
    После reset# SMBASE устанавливается в 30000h, абсолютное большинство биосов потом
    меняет его на A0000h. В тех редких случаях, когда SMBASE имеет другое значение, нетрудно поискать в памяти, пара методик есть.
    Мой код тебе видеть ни к чему, а код рутковской - пожалста
    http://invisiblethingslab.com/resources/misc09/smm_cache_fun.pdf
     
  16. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Хрен ты PE установишь в 0 при PG = 1. А без PG = 1 не будет лонгмоды. А с теневым CS работать - единственный путь через его образ в SMRAM State Save Map
     
  17. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Если ты не в курсе - APIC есть не на всех платах. У меня к примеру нету на VT8233.
    На них SMI# генерируется программированием чипсета.
    Даже необходимость наличия APIC - это уже аппаратная зависимость.
    Ты прежде чем постить не пробовал читать то что постишь?
    Это конечно совсем чипсетонезависимо.
     
  18. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    local APIC есть на всех процах, начиная с первых пней, это фича проца, а не чипсета.
    В отличие от некоторых я читаю то, о чем пишу. И понимаю о чем пишу. Код, продемонстрированный рутковской, иллюстрирует сам принцип атаки через кэш.
    Конкретные значения SMBASE (как правило A0000h) находятся без труда.
     
  19. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Ты адекватный вообще?
    Ну покажи мне local APIC на AMD Atlon XP.
     
  20. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Если ты суслика не видишь, не значит что его нет )))
    Маны образца 2000 года от АМД найти не удалось, однако в даташитах на различные ревизии
    Athlon XP есть явное упоминание о local APIC.