опять SMM

Тема в разделе "WASM.ASSEMBLER", создана пользователем NoName, 11 янв 2006.

  1. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    мм, а зачем подменять идентификацию/поиск IDE-контроллера в PCI conf space, если можно просто пресекать обнаружение CD-ROM'а на IDE (14/EB + фильтр для определенных команд), особенно учитывая, что PCI-возня сф делается для 'совместимости'. ;)







    Вообще у устройств есть нюансы вроде IRQ/DMA/busmaster/memory-mapped io, но в целом ответ -- можно. CD-ROM в PIO в том числе. ;)







    Ну тут вариантов масса, начиная от до загрузки системы и вплоть до патча системных модулей типа ntoskrnl.



    PS. Вообще, обсуждение всего связанного с сф на форумах напоминает мне фразу из фильма -- "Петруччо, я тебе на день милиции подарок сделаю. Форму пошью." ;) т.к. всё ими читается и принимается к сведению.
     
  2. xKVtor

    xKVtor New Member

    Публикаций:
    0
    Регистрация:
    24 май 2006
    Сообщения:
    28
    Адрес:
    2:5033
    _BC_







    Скрыть привод можно тогда, когда используется образ, расположенный на HDD.



    НО когда:

    <ul type=disc><li> используется CD/DVD-диск с RMPS (очень популярная фишка);

    <li> или когда запускают в пишущих приводах CD-клон (созданный по методу AlB)</ul>вот тогда CD/DVD-привод просто необходим. Нужно лишь отпугнуть от этого привода драйвера защиты.



    Кстати, в свете того, что последние версии СФ научились выявлять эмуляторы на уровне операционки, идея эмулятора на уровне SMM становится все более привлекательной.







    Я понял. :) Просто метод с использованием SMM мне показался 100%-но неломаемым. Пускай понервничают. :)



    PS:



    Кстати, использовать SMM для подмены конфигурационных регистров можно не только против защит, но и против недобросовестных производителей железа.



    Например, в случае с видеокартами фирмы ATI метод можно применить для "переделки" Radeon 9500/9800SE в 9700/9800 (подменой DeviceID) и обычных Радеонов в FireGL (подменой RevisionID).



    Тогда всем известные RivaTuner'овские патчскрипты (SoftR9x00/SoftFireGL для ATI и SoftQuadro для nVidia) потеряет свою актуальность. :)
     
  3. xKVtor

    xKVtor New Member

    Публикаций:
    0
    Регистрация:
    24 май 2006
    Сообщения:
    28
    Адрес:
    2:5033
    Несколько интересных ссылок по теме:



    Intel's System Management Mode (mirror)

    The Secrets of System Management Mode (mirror)

    The Caveats of System Management Mode (mirror)

    (All By Robert R. Collins)



    Для AMD K8:



    BIOS and Kernel Developer's Guide for AMD Athlon 64 and AMD Opteron Processors (Rev_3.30_Feb_2006) [26094].PDF (глава 6: SMM)

    AMD64 Architecture Programmer's Manual Volume 2 -- System Programming [24593].pdf (глава 10: SMM)



    Даташиты на не самые новые чипсеты можно нарыть на ROM.BY

    (о том, как попасть на ROM.BY, читаем здесь)
     
  4. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    именно у Р.Коллинза почерпнул вдохновение М.Гук. ;) Гук из его статей выбрал фасоль, разбавил своей водой -- и опа! -- готова глава про смм. ;)
     
  5. xKVtor

    xKVtor New Member

    Публикаций:
    0
    Регистрация:
    24 май 2006
    Сообщения:
    28
    Адрес:
    2:5033
    _BC_





    Гук не так уж и плох, особенно учитывая, что он, в отличие от Коллинза, пишет обо всем по-русски. :)

    ИМХО самое оптимальное начинать изучение вопроса с Гука и, разобравшись с терминологией и получив общее представление, обращаться к первоисточникам.



    Раз уж о Гуке заговорили, то вот цитата про SMM из его книжки 'Аппаратные средства IBM PC.'.

    ---------------



    Тут вроде кто-то даташитами на чипсеты интересовался -- без них с SMM точно не совладать. :)



    Вот небольшой список:



    Про ROM.BY в предыдущем посте я уже упоминал. (SiS,VIA,ALi).



    http://liquidvacuum.narod.ru/ - ассортимент повторяет ром.баевский (в основном SiS)



    Доки по INTEL'ам: чипсеты , процы.



    Доки по VIA:



    VT8237R_SouthBridge_Revision2.06_Lead-Free.zip

    cn400vt8237_r100.pdf

    vt8233a.pdf



    В ЭТОМ сообщении содержатся ссылки на следующие документы:



    <font color="red]nforce.rar</font><!--color--> -- весьма полезная документация на первый нФорс (северник C11/12 и южник MCP51); очень многие регистры совпадают с регистрами на nForce2 !!!



    vt8235.pdf

    kt400.pdf

    kt333.pdf



    Остальные документы дублируют ромбаевский набор:



    kx133.pdf

    kt133a.pdf

    694x1.pdf

    693a_apollo_pro133.rar

    sb_596b.rar

    686b.pdf

    686a.pdf

    amd761.pdf



    Очень интересные даташиты по VIA (не только на чипсеты) были замечены на http://file.21ic.com.cn ,но сейчас этот сайт в дауне. :dntknw: Может потом оживет...



    Даташиты на AMD-шные чипсеты были на сайте AMD, но в большинстве из них SMM упоминается лишь пару-троойку раз. Вот приятные исключения:



    AMD-768 Peripheral Bus Controller Data Sheet

    AMD-8111 HyperTransport I/O Hub Data Sheet



    Старички:



    AMD-K6 Processor Data Sheet

    AMD-K6-2 Processor Data Sheet

    AMD-K6-III Processor Data Sheet

    AMD-K6 (1,2,3) Processor BIOS Design Application Note



    В даташитах на более поздние процы (и северные мосты для них) все вопросы по SMM перенаправляются к соответствующим BIOS Design Guides.



    Если у кого-то есть дополнения -- пишите, не стесняйтесь. ;)
     
  6. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759




    Не, я имел ввиду другую его книжку -- "Процессоры...", а не "Аппаратные средства".







    ха, без джунгля всё же тут не обошлось. ;) Спасибо, полезная дока.
     
  7. xKVtor

    xKVtor New Member

    Публикаций:
    0
    Регистрация:
    24 май 2006
    Сообщения:
    28
    Адрес:
    2:5033
    Наконец-то, сайт заработал!



    _BC_



    После ознакомления с информацией об SMM заинтересовала меня следующая идея: вроде бы MSR'ы в AMD K7/K8 (в том числе отвечающие за множитель) доступны также в SMM.



    Никто не пробовал изучить/изменить их содержимое в рассматриваемом режиме ? Может в этом режиме отсутствуют ограничения на запись в MSR-регистры и таким образом можно будет разлочить максимальный [мобильный] множитель на К8 ?!



    Если кто напишет тестовую программку, то готов проверить ее на практике. Написать, наверное, будет проще для VIA, т.к. документации на нее побольше будет.
     
  8. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    xKVtor



    Сомневаюсь, что работа с MSR'ами сильно отличается от обычной протмоды. MSR'ы даже и не сохраняются в смрам при возникновении smi, логично предположить, что режим не влияет на их залочку.

    А что за множитель? Какой номер регистра?
     
  9. xKVtor

    xKVtor New Member

    Публикаций:
    0
    Регистрация:
    24 май 2006
    Сообщения:
    28
    Адрес:
    2:5033
    _BC_



    То что не сохраняются -- понятно.



    Я лишь надеюсь на то, что ограничения в SMM на запись регистров (и их отдельных битов) не такие жесткие. :)







    Тот, что на K7 назывался "мобильным". :)

    Стартовый, понятное дело, изменить не получится.







    Fid-Vid_Control MSR (C001 0041h)

    Fid-Vid_Status MSR (C001 0042h)



    Их описание есть в BIOS and Kernel Developer's Guide for AMD Athlon 64 and AMD Opteron Processors (Rev_3.30_Feb_2006) [26094].PDF (п.13.2.7/стр.382 + п.9.5/стр.266)



    По смене множителя на мобильных и замобиленных K7 у меня на ПС есть немного инфы.
     
  10. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    Скорее всего, на не-mobile атлонах этот множитель лочится полностью аппаратно. На 97,5% уверен, что эта залочка никаким образом не зависит от режима. Имхо амд было проще (и резоннее) отключить эту функциональность целиком на десктопных, не оставляя backdoor'ов в виде зависимости R/RW регистра от режима.
     
  11. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    xKVtor

    afaik эти регистры служат для _понижения_ частоты в мобильных процах. Если записать туда бОльшее значение, то он просто проигнорируется.
     
  12. xKVtor

    xKVtor New Member

    Публикаций:
    0
    Регистрация:
    24 май 2006
    Сообщения:
    28
    Адрес:
    2:5033
    infern0







    Я прекрасно знаю, для чего ослужат эти регистры. ;)



    Тут вопрос в другом:

    <ul type=disc><li> изменяются ли свойства MSR регистров в SMM ? (прежде всего их перезаписываемость)

    <li> не появляются ли в этом режиме ранее недоступные/неизвестные MSR'ы ?</ul>

    Сомневаюсь, что кто-нибудь ранее проводил такие исследования. :) Результат скорее всего будет отрицательным, но проверить не мешает: а вдруг ?!



    _BC_



    Было бы конечно неплохо посредством SMM превратить десктопный проц в мобильный не прибегая к паяльнику. :) Но меня пока больше интересует возможность повышения максимально доступного мобильного множителя. Лучше на K8, но можно и на К7 поэкспериментировать. Платы для обоих процов на VIA-шном чипсете найдутся.



    PS: На всякий случай: народ, только не надо предлагать мне повысить макс множитель на K7 посредством мостиков -- речь тут совершенно не об этом. ;)
     
  13. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    xKVtor

    Сильно сомневаюсь в благополучном исходе, но попробовать можно. Напиши в ПМ на overcl название своей мат.платы (чипсета) и (желательно) линк на прошивку BIOS от нее (лучше всего оригинальную сдампить с платы).
     
  14. xKVtor

    xKVtor New Member

    Публикаций:
    0
    Регистрация:
    24 май 2006
    Сообщения:
    28
    Адрес:
    2:5033
    Полез поискать инфу по одному вопросу в AMD64 Architecture Programmer's Manual Volume 2 -- System Programming [24593] и попутно наткнулся на описание интересной фичи новых амдшных процов: Secure Virtual Machine (глава 15).



    Это в какой-то мере аналог SMM. Причем по некоторым направлениям гораздо более продвинутый. :) Так же существует возможность скрывать некоторые действия от операционной системы.



    Суть такова:



    Запускается virtual machine monitor (hypervisor) VMM, который позволяет одновременно запускать на компе несколько [т.н. гостевых] операционок. Причем в отличие от всяких виртуальных машин эти операционки имеют полный доступ к железу и для них такой способ запуска практически ничем не отличается от традиционного запуска.



    VMM занимается переключением гостевых операционок.



    Но самое интересное -- можно перехватывать обращения операционок ко ВСЕМ портам !



    Так же возможно:



    * перехватывать обращения к MSR'ам;

    * отслеживать выполнение некоторых инструкций (типа CPUID)



    Надеюсь, не надо объяснять, что это дает. Звезданутые будут в истерике, ибо отследить, каким образом запущена ОС, будет скорее всего проблематично. :)



    А если еще попробовать организовать пересылку данных м/у гостевыми опрерационками...



    PS: Похоже, речь идет о технологии виртуализации Pacifica. У интела это Intel VT (Vanderpool), если не ошибаюсь. У этих двух технологий много общего. По идее, все процы (кроме бюджетных семпронов), выпущенные в этом году, должны поддерживать виртуализацию.
     
  15. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia


    либо твоя уверенность ошибочна, либо вопрос бессмысленен.
     
  16. Chingachguk

    Chingachguk New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2002
    Сообщения:
    340
    xKVtor

    А как же если:

    "...Причем в отличие от всяких виртуальных машин эти операционки имеют полный доступ к железу..."

    Они там ресурсы делят?
     
  17. xKVtor

    xKVtor New Member

    Публикаций:
    0
    Регистрация:
    24 май 2006
    Сообщения:
    28
    Адрес:
    2:5033
    Делят не они, как я понимаю
    Ресурсы распределяет гипервизор.
    Он же, наверное, отслеживает, чтоб никто из операционок на чужое не зарился.

    ЗЫ: Может выделить сообщения по виртуализации в отдельную тему ? ИМХО штука интересная и перспективная.
     
  18. eugene_

    eugene_ New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2005
    Сообщения:
    93
    Адрес:
    Russia
    Кроме распределения ресурсов они еще и эмулировать наборы команд могут (технология Pacifica от AMD, по крайней мере, может). Плюс, всякие фичи направленные на повышение безопасности - типа MD5 сосчитать аппаратно :) одной командой или подпись там проверить
     
  19. xKVtor

    xKVtor New Member

    Публикаций:
    0
    Регистрация:
    24 май 2006
    Сообщения:
    28
    Адрес:
    2:5033
    Кроме распределения гипервизор может перехватывать выполнение различныех инструкций (тех, которые выше упоминал, и нек. других).

    А вот что значит "эмулировать набор команд" ? Эмулируют обычно то что отсутствует.

    ЗЫ:

    Кстати, если прикинуть, то уровень гипервизора идеально подходит для работы всяких дебаггеров -- почти полная свобода и уйма возможностей по перехвату!

    Наверняка в будущем появится отладчик, использующий эти огромные возможности.
     
  20. xKVtor

    xKVtor New Member

    Публикаций:
    0
    Регистрация:
    24 май 2006
    Сообщения:
    28
    Адрес:
    2:5033
    Возвращаясь к теме SMM. :)

    Похоже, первым продуктом, использующим возможности этого режима по полной программе, станет виртуальный IDE-контроллер в DaemonTools Pro (DT Pro). Почти два месяца назад я уже делал предположение на эту тему. Но недавно наткнулся на одном форуме на фразу: "DT Pro must be tested because there are still some Bugs with the vIDE on some chipsets of some Boards." ИМХО упоминание зависимости от чипсетов и материнских плат (читай: их биосов) -- это лишнее подтверждение моих предположений.

    Если это действительно так, то будет любопытно взглянуть на первый программный продукт, полноценно использующий возможности SMM. Сколько лет, сколько зим... ;)