мм, а зачем подменять идентификацию/поиск IDE-контроллера в PCI conf space, если можно просто пресекать обнаружение CD-ROM'а на IDE (14/EB + фильтр для определенных команд), особенно учитывая, что PCI-возня сф делается для 'совместимости'. Вообще у устройств есть нюансы вроде IRQ/DMA/busmaster/memory-mapped io, но в целом ответ -- можно. CD-ROM в PIO в том числе. Ну тут вариантов масса, начиная от до загрузки системы и вплоть до патча системных модулей типа ntoskrnl. PS. Вообще, обсуждение всего связанного с сф на форумах напоминает мне фразу из фильма -- "Петруччо, я тебе на день милиции подарок сделаю. Форму пошью." т.к. всё ими читается и принимается к сведению.
_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) потеряет свою актуальность.
Несколько интересных ссылок по теме: 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, читаем здесь)
именно у Р.Коллинза почерпнул вдохновение М.Гук. Гук из его статей выбрал фасоль, разбавил своей водой -- и опа! -- готова глава про смм.
_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 ,но сейчас этот сайт в дауне. Может потом оживет... Даташиты на 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. Если у кого-то есть дополнения -- пишите, не стесняйтесь.
Не, я имел ввиду другую его книжку -- "Процессоры...", а не "Аппаратные средства". ха, без джунгля всё же тут не обошлось. Спасибо, полезная дока.
Наконец-то, сайт заработал! _BC_ После ознакомления с информацией об SMM заинтересовала меня следующая идея: вроде бы MSR'ы в AMD K7/K8 (в том числе отвечающие за множитель) доступны также в SMM. Никто не пробовал изучить/изменить их содержимое в рассматриваемом режиме ? Может в этом режиме отсутствуют ограничения на запись в MSR-регистры и таким образом можно будет разлочить максимальный [мобильный] множитель на К8 ?! Если кто напишет тестовую программку, то готов проверить ее на практике. Написать, наверное, будет проще для VIA, т.к. документации на нее побольше будет.
xKVtor Сомневаюсь, что работа с MSR'ами сильно отличается от обычной протмоды. MSR'ы даже и не сохраняются в смрам при возникновении smi, логично предположить, что режим не влияет на их залочку. А что за множитель? Какой номер регистра?
_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 у меня на ПС есть немного инфы.
Скорее всего, на не-mobile атлонах этот множитель лочится полностью аппаратно. На 97,5% уверен, что эта залочка никаким образом не зависит от режима. Имхо амд было проще (и резоннее) отключить эту функциональность целиком на десктопных, не оставляя backdoor'ов в виде зависимости R/RW регистра от режима.
xKVtor afaik эти регистры служат для _понижения_ частоты в мобильных процах. Если записать туда бОльшее значение, то он просто проигнорируется.
infern0 Я прекрасно знаю, для чего ослужат эти регистры. Тут вопрос в другом: <ul type=disc><li> изменяются ли свойства MSR регистров в SMM ? (прежде всего их перезаписываемость) <li> не появляются ли в этом режиме ранее недоступные/неизвестные MSR'ы ?</ul> Сомневаюсь, что кто-нибудь ранее проводил такие исследования. Результат скорее всего будет отрицательным, но проверить не мешает: а вдруг ?! _BC_ Было бы конечно неплохо посредством SMM превратить десктопный проц в мобильный не прибегая к паяльнику. Но меня пока больше интересует возможность повышения максимально доступного мобильного множителя. Лучше на K8, но можно и на К7 поэкспериментировать. Платы для обоих процов на VIA-шном чипсете найдутся. PS: На всякий случай: народ, только не надо предлагать мне повысить макс множитель на K7 посредством мостиков -- речь тут совершенно не об этом.
xKVtor Сильно сомневаюсь в благополучном исходе, но попробовать можно. Напиши в ПМ на overcl название своей мат.платы (чипсета) и (желательно) линк на прошивку BIOS от нее (лучше всего оригинальную сдампить с платы).
Полез поискать инфу по одному вопросу в 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), если не ошибаюсь. У этих двух технологий много общего. По идее, все процы (кроме бюджетных семпронов), выпущенные в этом году, должны поддерживать виртуализацию.
xKVtor А как же если: "...Причем в отличие от всяких виртуальных машин эти операционки имеют полный доступ к железу..." Они там ресурсы делят?
Делят не они, как я понимаю Ресурсы распределяет гипервизор. Он же, наверное, отслеживает, чтоб никто из операционок на чужое не зарился. ЗЫ: Может выделить сообщения по виртуализации в отдельную тему ? ИМХО штука интересная и перспективная.
Кроме распределения ресурсов они еще и эмулировать наборы команд могут (технология Pacifica от AMD, по крайней мере, может). Плюс, всякие фичи направленные на повышение безопасности - типа MD5 сосчитать аппаратно одной командой или подпись там проверить
Кроме распределения гипервизор может перехватывать выполнение различныех инструкций (тех, которые выше упоминал, и нек. других). А вот что значит "эмулировать набор команд" ? Эмулируют обычно то что отсутствует. ЗЫ: Кстати, если прикинуть, то уровень гипервизора идеально подходит для работы всяких дебаггеров -- почти полная свобода и уйма возможностей по перехвату! Наверняка в будущем появится отладчик, использующий эти огромные возможности.
Возвращаясь к теме 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. Сколько лет, сколько зим...