SiS vs. StarForce
реклама
Продолжение цикла статей про надувательство старфорса при помощи смены некоторых идентификационных PCI-регистров IDE/SATA-контроллеров.
Похоже, мне все-таки одному придется тянуть лямку исследователя в данном направлении:
SiS-овские чиспеты сейчас можно встретить в основном на бюджетных материнках с интегрированной графикой. Продукция фирмы Silicon Integrated Systems мало распространена на сегодняшнем рынке чипсетов. Наверное, даже меньше, чем VIA. По крайней мере в России.
Поэтому мне пришлось приложить определенные усилия, чтобы раздобыть для своих опытов мамку на чипсете производства SiS. Ею оказалась ASUS P4S800-MX SE с южным мостом SiS964.
Поскольку <выборка> оказалась не очень представительной, я не могу гарантировать, что приведенная в этой статье информация будет применима ко ВСЕМ контроллерам, интегрированным в другие <южники> производства SiS.
Почему именно SiS ? Все очень просто.
Я обратил внимание на то, что в режимах [ RAID] и [ Native] (режим устанавливается в биос) регистры DeviceID и код класса SATA-контроллера отличаются. Получалось, что БИОС имеет возможность управлять этими регистрами. Т.е. изменение этих регистров возможно! Оставалось только выяснить: каким образом ?
Замечу сразу, что не удалось найти никакой документации на южные мосты SIS, вышедшие за последние несколько лет. А в документации на <старинные> модели южников информация по изменению идентификационных регистров напрочь отсутствовала:
Поэтому исследования пришлось проводить <методом научного тыка>. Т.е. все результаты были получены исключительно на основе практических изысканий. Вполне вероятно существуют еще какие-то дополнительные возможности по смене идентификационных регистров, до которых я не "докопался" в ходе экспериментов.
Итак, выяснилось, что...
Но не спешите радоваться, т.к. на выбор предоставляется только ДВА возможных значения.
Таблица: зависимость DeviceID от значения бита 7 регистра #57.
Bit 7 Reg #57 |
IDE | SATA |
---|---|---|
0 | 5518h | 0180h |
1 | 5513h | 0181h |
ДО:
ПОСЛЕ:
Bit 0 Reg #57 |
SubClass Code (Reg #0A) |
---|---|
0 | 01h |
1 | 04h |
ДО:
ПОСЛЕ:
Внимание!
Возможность смены подкласса кода существует только для SATA-контроллера! Попытка перевести в единицу бит #0 регистра #57 на IDE-контроллере (DevID=5513h) приведет к потере операционной системой IDE-шного жесткого диска с последующей самопроизвольной перезагрузкой!
В том, что нулевой бит регистра 57 на IDE-контроллере не отвечает за SubClass, я убедился изменяя этот бит в чистом ДОСе, предварительно отключив в БИОСе все IDE-накопители и загрузившись с дискеты.
Сразу предупреждаю, что этой возможностью лучше не пользоваться!
Но для справки все же приведу здесь описание того, как это можно проделать.
За состояние бита 3 регистра #09h (P.I.F.) отвечает бит 3 регистра #50.
За состояние бита 1 регистра #09h (P.I.F.) отвечает бит 3 регистра #52.
Т.е. если установить бит 3 в регистрах #50 и #52, то в единицу установится соответствующий бит (#1 или #3) в регистре #09h (P.I.F.).
И наоборот, можно из P.I.F.=8Ah (1000 1010 b) получить P.I.F.=80h (1000 0000 b), если сбросить соответствующие биты регистров #50 и #52 в ноль
Bit 3 Reg#50 |
Bit 3 Reg#52 |
P.I.F. (bin) | P.I.F. (hex) |
---|---|---|---|
0 | 0 | 1000 0000 b | 80h |
0 | 1 | 1000 0010 b | 82h |
1 | 0 | 1000 1000 b | 88h |
1 | 1 | 1000 1010 b | 8Ah |
Ну а теперь настала пора рассмотреть возможные случаи применения полученных экспериментальным путем данных на практике.
В каких случаях имеет смысл использовать приведенную в статье информацию?
Случай, пожалуй, только один: когда Ваш CD/DVD-привод подключен к IDE-контроллеру.
При этом изменив идентификационные регистры можно ввести вредоносные программы в заблуждение не прибегая к отключению IDE-контроллера (физическому, через БИОС или через Диспетчер устройств). Это особенно актуально, если системный загрузочный жесткий диск подключен к тому же IDE-контроллеру.
Изменение идентификационных регистров SiS-овских IDE-шных контроллеров позволит обломить большинство вредоносных программ (со старморсом во главе), рвущихся к прямому управлению дисками в обход системных драйверов.
Правда, опять же, как и в случае с VIA, придется учитывать баг старфорса версий 3.4.6.x, <благодаря> которому он не смотрел на идентификационные регистры тех устройств, к управлению которыми приступал.
Но это не повод для печали, т.к. по информации с bestmedia, с данными версиями стара прекрасно справляется StarForceNightmare версии 1.12.
Почему не имеет смысла изменять регистры SATA-контроллера? Дело в том, что многие вредоносные программы (например, старморс) до сих пор не рискуют работать с SiS-овским SATA-шным контроллером напрямую, даже если он находится в Native IDE mode. Кстати, это касается так же интегрированных SATA-контроллеров других производителей (например, nVidia), программный интерфейс которых (P.I.F.) так же равен 85h.
Специально для тех, кто не совсем все понял, рассмотрю практический примерчик.
Итак, допустим у Вас сложилась одна из следующих ситуаций:
Ситуация 1:
- CD/DVD-привод подключен на IDE-контроллер.
- На этот же контроллер подключен системный жесткий диск.
- Требуется спрятать привод от зловредных программ, но SFNightmare не помогает, а отключение всего контроллера по понятным причинам (см.пункт 2) невозможно.
Ситуация 2:
- CD/DVD-привод подключен на IDE-контроллер.
- Необходимо заставить зловредные программы работать с этим приводом через системные драйвера.
- В качестве вредоносного софта, приложения выступает не старфорс версии 3.4.6.х. (Не забываем, что эта версия содержит ошибку, суть которой в том, что старморс не проверяет идентификационные регистры контроллера, которым собирается напрямую управлять). Если это условие не выполняется, то качаем с инета обновление.
Примечание: В ситуации 2 безразлично, куда подключен системный жесткий диск.
Расписываю по шагам:
Лезем в Диспетчер устройств и выясняем PCI-адрес нашего IDE-контроллера. Он (контроллер) обычно называется " SiS 5513 IDE UDMA controller"
Жмем свойства и на первой вкладке видим искомый PCI-адрес.
Выяснение PCI-адреса нужного IDE-контроллера необходимо в случае, если этих контроллеров на материнской плате несколько (IDE+SATA, например).
Скачиваем прогу WPCREDIT, запускаем ее.
Жмем "Ctrl+D", либо в меню выбираем "Edit > Device", либо жмем на пиктограмму (седьмая слева).
В появившемся списке выбираем устройство по PCI-адресу (в красной рамке).
В моем случае это:
Bus (шина) = 0
Device (устройство) = 2
Function (функция) = 5
У Вас эти значения могут отличаться от моих.
Контролируем правильность выбора устройства по надписи " IDE Controller" в правом верхнем углу.
Выбираем регистр #57 (строка с этим регистром обозначена как 50, а столбец - 07). Должна получиться примерно такая картина:
Бит 7 регистра 57 подсвечен белым и обведен красной рамкой.
Чтобы изменить DeviceID устройства (обведен голубой рамкой), необходимо изменить этот бит с 1 на 0.
Изменяем. Жмем кнопку "Set" справа.
Подтверждаем изменения.
Чтобы убедиться в том, что DeviceID изменился с 551 3 на 551 8, необходимо опять нажать Ctrl+D и выбрать из списка наш контроллер:
Ну, вот, пожалуй, и вся процедура. Как видите, ничего сложного.
При необходимости можно вернуть все в исходное состояние.
Благодаря необычайной личной заинтересованности учаcтника форума acaN? была найдена информация о способах смены регистра DeviceID IDE-контроллера на некоторых других южниках от SiS.
Цитирую (практически полностью) мое сообщение в форуме на эту тему:
-
acaN?
цитата:
"Fortunately the 5513 can be 'unmasked' by fiddling with some config space
bits, changing its device id to the true one - 5517 for 961 and 5518 for
962/963."
Т.е. Device ID меняется...
Спасибо за ценнейшую наводку.
Оказывается, DeviceID меняется на SiS 962 / SiS 963 так же, как и у SiS 964 (который в моей статейке рассмотрен)
Т.е. нужно сбросить в ноль бит 7 регистра 57h.
На SiS 961 / SiS 961B теоретически DeviceID должен поменяться
после установки в единицу бита 4 регистра 4Ah.
По твоему скриншоту это будет выглядеть примерно так:
Остается лишь кнопочку EDIT нажать
Только учти, что сразу изменения DeviceID ты не увидишь.
Для проверки выбери опять устройство через "Select device..."
На SiS961 / SiS961 rev. B вместо 551 8h будет 551 7h.
ЗЫ: Вот документ, на основании которого я делаю такие предположения.
Пользуясь случаем, выражаю acaN? свою благодарность за содействие в решении данного вопроса!
Теперь на практике осталось выяснить следующее:
- Меняются ли SubCode и P.I.F. контроллеров на упомянутых южниках (961/961b/962/963) таким же способом, как в этой статье, или нет ?
- Проверить описанные в статье способы смены регистров на новых южниках (SiS965 / SiS966).
Обсудить эту и другие статьи/записи с моей персональной страницы можно в соответствующей ветке конференции.
реклама
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Сейчас обсуждают