Pull to refresh

Comments 40

TPM, я думаю, можно включить поправив UEFI код. Единственное, если активировать TPM в этом случае, то после включения будет предпреждение в виде пяти, кажется, коротких гудков и небольшой паузы, т.к. TPM проверяет оригинальность UEFI кода. Для lenovo последнее можно проверить и сейчас. Качаем с lenovo Sample Scripts for BIOS Deployment Guide . С правами администратора запускаем:

cscript.exe SetConfig.vbs SecurityChip Active

Перезагружаемся и, если в биосе включен aes путем редактирования прошивки, во время загрузки услышим пять бипов. Но ОСь TPM всё равно видеть не будет, хотя он и активирован — нужно править биос.
Только если в прошивке уже есть необходимые драйверы и не хватает только самого TPMа. Обычно в таком случае нужно припаять сам чип (SSOP-28, паяется руками без проблем) и пару SMD-резисторов и конденсаторов для его питания. Иногда еще придется найти strap-резисторы и поменять их так, чтобы драйверы TPM начали стартовать.
В моём случае, lenovo t420s tpm отключен, нужная микросхема распаяна:



И TPM, как я говорил, даже можно активировать, но в ОСи его не видно.
А как реализована блокировка? Может быть BIOS просто проверяет MTM (как у Wi-Fi адаптеров) или есть выключатель в сервисном меню, которое используют при замене материнки?
На плате есть отдельная микросхема еепрома, она, кстати, видна, под контактами, которые замыкаются на леново. Возможно установки на счёт aes и tpm есть там.
О, если Anti-Theft и Computrace полностью отключить из BIOS (disable permanently), то их, похоже, можно таким же образом активировать заново?
Я не пробовал. Сходу, кажется, что «да», но, например, пароль на биос хранится в отдельной миксросхеме еепрома или же ключи шифрования хранятся где-то в TPM, кажется и так просто их не снести.
Конечно. Все эти «permanently» — зачастую фикция. Anti-Cheft, вообще говоря, больше не поддерживается, и включать его я не рекомендую, а вот драйверы LoJack/Computrace лучше удалять не думая, т.к. никаким «permanently» там и близко не пахнет.
UFO landed and left these words here
Спасибо. Писал, как для себя. Когда-то, давным-давно, когда я не знал хабра и только купил свой боевой леново, я разблокировал aes по чужим руководствам и написал пост на ixbt конкретно для своего ноутбука. С той поры, каждый раз после обновления биоса, я гуглил свой пост и по нему восстанавливал aes на ноутбуке. Очень было удобно.
А как разблокировать интеловское видеоядро?
Для интеловского видео ядра — нужно доп питание + разводка элементов на плате, для общения того самого ядра с хабом (H-HM-QS и т.д.). В биосе максимум что может быть — это уточнение какое должно быть видео ядро, на какой частоте оно будет работать и при какой температуре выключаться
На моей плате скорее всего это всё есть, вот только у меня Asus (G750JH), и где там что замыкать для чтения-записи я если честно без понятия.
Я правильно понимаю, для HM87 (как и для QM87, у них вроде серия одинаковая) замыкать надо 1 и 5 ноги аудиочипа при буте? Одна деталь, у меня ME восьмой версии, а не седьмой. На восьмой этот трюк тоже пройдёт?

Ламерский вопрос — если я замыкая ноги 1 и 5 замкну ещё случайно шестую, очень страшно будет? Понятно что лучше этого избегать, но походу на моём ноуте всё слишком близко расположено, и удобных площадок куда можно подцепиться просто нету рядом с аудиочипом, так что придётся прямо к самим ножкам видимо цепляться.

Было бы круто если CodeRush бы ответил — насколько я понял, он известный специалист в этой области. Был бы весьма признателен.

Как бонус — производитель вложил в драйвера все системные тулзы и даже PreProduction и Production бинари ME-региона!
Ошибочка — серия чипсета 8, а ME — 9

Отвечаю: замыкать надо вывод чипсета HDA_SDO на единицу (т.е. на 3.3В или 1.8В на Атомах). Если удобных площадок нет, надо работать с тем, что есть, но что будет от замыкания шестой ноги на питание — тут я не могу сказать наверняка, это зависит от модели аудочипа.

Спасибо! Т.е. на восьмых чипсетах это актуально? Просто я читал спеку на 8 чипсет, там пункт про HDA_SDO прописан, но не указано что оно делает, а просто написано reserved.

Актуально на всех чипсетах Intel, которые поддерживают descriptor mode, т.е. с ICH7 и до самых последних.

Спасибо! Удалось разлочить, нашёл таки крошечную но площадку.

Спасибо за наводку на нужный пин. Я попробовал на Asus X550VB. Но не получилось. Дело было так:


Без всяких хардверных манипуляций с помощью Intel Flash Programming Tool (под Win x64) успешно вычитал DESC, BIOS и GBE. А ME оно, естественно, отказалось читать (мол, прав нет). Также, DESC не удалось записать (опять-таки, прав нет). Надо разбирать ноут.


Нашёл звуковуху (ALC277). На этот чип даташита нет, но я глянул распиновку в аналогичном (проверял другие ножки, чтобы соответствовали): pinout
Нашёл нужную ножку (а она ещё и шелкографией помечена. Совпадение?):
chip
Пины очень маленькие, ещё и снизу платы всё это, ноутбук включать неудобно. Но добрый человек подсказал, где контакт выходит на другую сторону платы. Я проверил — и правда он. Также, уже самостоятельно, нашёл точку пина питания и потом, уже от отчаяния, ещё один пин:
points
Сколько раз я ни пробовал — всё без толку. Подавал +3.3В и на SDATA-OUT, и (от безнадёги) на SDATA-IN (не одновременно). Подавал начиная от всовывания штекера, и до момента, когда БИОС просит пароль на загрузку.


Первые разы загружался в Windows, пробовал — нет права читать ME, нет права писать в DESC. Потом в Винду грузиться задолбался, закинул на флешку UEFI shell. Начал так же пробовать через EFI-шные версии тулзов. Попытка через Flash Programming Tool (EFI) записать в DESC — результат тот же. MEInfo что в Винде, что в UEFI выдаёт строчки


Host Read Access to ME:                 Disabled
Host Write Access to ME:                Disabled

ЧЯДНТ?


Полный вывод MEInfo
.\MEInfoWin64.exe

Intel(R) MEInfo Version: 8.1.56.1541
Copyright(C) 2005 - 2014, Intel Corporation. All rights reserved.

Intel(R) ME code versions:

BIOS Version:                           X550VB.217
MEBx Version:                           0.0.0.0000
Gbe Version:                            1.3
VendorID:                               8086
PCH Version:                            4
FW Version:                             8.1.2.1318
UNS Version:                            Not Available
LMS Version:                            Not Available
MEI Driver Version:                     11.0.0.1157
Wireless Hardware Version:              Not Available
Wireless Driver Version:                Not Available

FW Capabilities:                        0x01101C60

    Intel(R) Anti-Theft Technology - PRESENT/ENABLED
    Intel(R) Capability Licensing Service - PRESENT/ENABLED
    Protect Audio Video Path - PRESENT/ENABLED
    Intel(R) Dynamic Application Loader - PRESENT/ENABLED

CPU Upgrade State:                      Not Upgradable
Cryptography Support:                   Disabled
Last ME reset reason:                   Power up
Local FWUpdate:                         Enabled
BIOS Config Lock:                       Enabled
Host Read Access to ME:                 Disabled
Host Write Access to ME:                Disabled
SPI Flash ID #1:                        EF4017
SPI Flash ID VSCC #1:                   20052005
SPI Flash BIOS VSCC:                    20052005
BIOS boot State:                        Post Boot
OEM Id:                                 00000000-0000-0000-0000-000000000000
Capability Licensing Service:           Enabled
Capability Licensing Service Status:    Permit info not available
OEM Tag:                                0x00001043
Localized Language:                     Unknown
Independent Firmware Recovery:          Disabled
Все так делаете, только смотрите не туда немного.
Проверять надо той же утилитой MEInfo, только с параметром -FWSTS, если все сработало верно, то ME окажется отключенным, и дальше уже через Intel FPT можно шить и дескриптор, и регион МЕ. При этом все утилиты (в том числе MEInfo) продолжат рапортовать о том, МЕ защищен от записи, просто защита эта перестанет работать.

Спасибо за ответ.
Ок, допустим я неправильно смотрел MEInfo. Но это не не должно было повлиять на возможность записи, верно?
Я без вызова MEInfo сразу пытался шить и из Винды, и из UEFI. Результат был такой (это я уже для демонстрации запустил без закорачивания нужных контактов на плате, но с закорачиванием результат был точно такой же):


.\fptw64.exe -desc -f .\X550_ME_SPI_DESC_UNLOCK.bin

Intel (R) Flash Programming Tool. Version:  8.1.60.1561
Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.

Platform: Intel(R) HM76 Express Chipset
Reading HSFSTS register... Flash Descriptor: Valid

    --- Flash Devices Found ---
    W25Q64BV    ID:0xEF4017    Size: 8192KB (65536Kb)

PDR Region does not exist.

Error 25: The host CPU does not have write access to the target flash area.  To enable write access for this operation you must modify the descriptor settings to give host access to this region.

Шить отказалось. Считывать могу (как и раньше). Сравнивая считанное вижу, что ничего не записалось. ME вычитать также не могу (и с закорачиванием контактов не мог):


.\fptw64.exe -me -d .\X550_ME_SPI_ME.bin

Intel (R) Flash Programming Tool. Version:  8.1.60.1561
Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.

Platform: Intel(R) HM76 Express Chipset
Reading HSFSTS register... Flash Descriptor: Valid

    --- Flash Devices Found ---
    W25Q64BV    ID:0xEF4017    Size: 8192KB (65536Kb)

Error 26: The host CPU does not have read access to the target flash area. To enable read access for this operation you must modify the descriptor settings to give host access to this region.
Значит, что-то все-таки делаете неправильно, или замыкаете не ту ногу, или делаете это слишком поздно. Посоветую отключить батарею, замкнуть, воткнуть зарядное, включить и загрузиться в UEFI Shell, все должно работать. Механизм этот чипсетный, и потому отключен быть не может (прошивка может отказаться стартовать с ним, но это другая история).

Я несколько раз всё проверял. Прозванивал та ли это нога. Убедился, что не звонятся соседние ножки. Это всё происходило без аккумулятора.
Замыкал разными вещами (и пинцетом, и ножницами). Убедился, что есть электрическое соединение между точками после замыкания…
Закорачивал, потом всовывал штекер питания, держал точки замкнутыми до момента, когда БИОС просит пароль на загрузку. И всё-равно ничего не добился.
Мне уже кажется, что для меня нет другого способа, кроме как выпаивать SPI флеш и шить его программатором…
Если прошить разлачивающий DESC (каким-либо способом), тогда уже будет свободный доступ к ME на чтение и запись, верно?

Пришлось разбирать ноут т.к. динамик захрипел. Заодно решил попробовать ещё раз сделать задуманное. И...


Успех!


Я подозревал, что ничего не выходит при замыкании контактов возле аудиочипа потому, что между аудиочипом и чипсетом есть резистор.


Начал искать куда идёт дорожка. Нашёл возле чипсета переходное отверствие куда она входит (на картинке отмечено красным внизу зелёного круга). К сожалению эта дорожка заходит в средние слои материнки. Но чудом мне удалось найти место, где она выходит наружу (я ведь почти здался!). Это место отмечено красным на картинке (в верхней части зелёного круга).


И правда: после этого сигнал идёт через чёртов резистор! Вот как раз после резистора (обведено жёлтым на картинке) и надо закоротить на +3.3 В. Рядом очень удобно расположена крупная площадка с таким напряжением (обведено жёлтым на картинке). Сразу же получилось!



Компьютер запустился в этом режиме. Простой вызов MEInfo работать перестал. Зато показания MEInfo -FWSTS изменились.


MEInfo -FWSTS обычный режим

Intel® MEInfo Version: 8.1.56.1541
Copyright© 2005 — 2014, Intel Corporation. All rights reserved.


FW Status Register1: 0x1E000245
FW Status Register2: 0x60000106


CurrentState: Normal
ManufacturingMode: Disabled
FlashPartition: Valid
OperationalState: M0 with UMA
InitComplete: Complete
BUPLoadState: Success
ErrorCode: No Error
ModeOfOperation: Normal
ICC: Valid OEM data, ICC programmed


MEInfo -FWSTS unsecured режим

Intel® MEInfo Version: 8.1.56.1541
Copyright© 2005 — 2014, Intel Corporation. All rights reserved.


FW Status Register1: 0x1E040185
FW Status Register2: 0x10520106


CurrentState: Normal
ManufacturingMode: Disabled
FlashPartition: Valid
OperationalState: Bring Up
InitComplete: Initializing
BUPLoadState: Success
ErrorCode: No Error
ModeOfOperation: Unsecured mode by H/W jumper
ICC: Valid OEM data, ICC programmed
PhaseStatus: UNKNOWN


Прошил разблокирующий DESC. Выключил и включил комп, чтобы попасть в обычный режим (просто перезагрузка не сбрасывает режим, надо чтобы комп выключил питание (не обязательно обесточивать физически, просто завершение работы)). Теперь показания MEInfo -FWSTS в обычном режиме немного отличаются от обычного режима до разблокировки. Изменилось значение FW Status Register1 и теперь ManufacturingMode: Enabled.


MEInfo -FWSTS обычный разблокированный режим

Intel® MEInfo Version: 8.1.56.1541
Copyright© 2005 — 2014, Intel Corporation. All rights reserved.


FW Status Register1: 0x1E000255
FW Status Register2: 0x60000106


CurrentState: Normal
ManufacturingMode: Enabled
FlashPartition: Valid
OperationalState: M0 with UMA
InitComplete: Complete
BUPLoadState: Success
ErrorCode: No Error
ModeOfOperation: Normal
ICC: Valid OEM data, ICC programmed


Ну и простой вызов MEInfo в обычном разблокированном режиме работает и показывает, что блокировка снята (это единственное, что поменялось):


Host Read Access to ME: Enabled
Host Write Access to ME: Enabled

Буду экспериментировать :)

Что интересно: каждый раз при вычитывании ME бинарь немного отличается (несколько раз читал с помощью FPT под Windows64).
Но первый раз вычитывал с помощью FPT под UEFI и этот бинарь отличается гораздо сильнее от тех, что считаны под Windows.

Там и у основной прошивки, и у МЕ есть области NVRAM, в которых хранятся переменные, способные меняться при каждой загрузке, так что эти отличия — это нормально вполне.

Открыл FULL и наблюдаю сразу такое:


Непонятно. Первый пункт вроде как отключает AMT и включить нельзя, а второй свидетельствует, что уже всё включено. Что бы это значило?

HM77 — это чипсет без поддержки AMT вообще, о чем первая строка и сообщает. Все остальное — это сами настройки уже, т.е. если чипсет сменить, а настройки — нет, то AMT заработает.

Спасибо за ответ. Эх… А я так искал возможность включить это...


А есть ли у кого то опыт в развертывании решения удаленного управления на базе Intel vPro and Intel AMT? 100-200 компов? Через туннели и прочие наты? :-) Чем лучше, удобнее, стабильнее, безопаснее управлять? Оправданно ли будет внедрение монстра типа SCCM? Есть ли решение которое бы использовало сертификаты для AMT? Кто использовал поделитесь опытом.
А что делать, если в новых чипсетах есть проверка подписи firmware?
Вроде как Intel Secure Boot называется.
На новых ThinkPad есть.
Надо с этим столкнуться. По факту, мы не правим ничего в фулфлеше связанного с постоянным кодом, мы правим только пользовательские данные. При активном TPM, после включения ноутбка с модифицированным биосом раздаются пять коротких бипов, но то при модифицированном UEFI коде и бипы при включении не мешают дальнейшей работе.
Хм, интересно. Но вряд ли таким образом можно исправить whitelist WLAN/WWAN PCI-устройств.
Раньше это можно было сделать, сейчас на r/thinkpad сабреддите жалуются, что теперь это невозможно.
«В конце хотелось бы поблагодарить пользователя CodeRush, который сначала упомянул, что драконы существуют, а потом „сам привел меня в их логово“.»
Интересная все таки вещь, Хабр: сначала появляется статья, предупреждающая чуть ли не о восстании машин… а затем — как это восстание устроить.
Ну, так идея в том, что «intel me» — неотъемлемая часть чипсета, она работает всегда. И знания, как врага включить на «полную катушку», дают нам дополнительные сведения, как его выключать, где искать его код, как получать доступ к нему. Я разблокировал AMT не для того, чтобы им пользоваться, а только лишь потому, что мне было интересно. В биосе леново, кстати, появился пункт связанный с AMT, где его можно выключать, а также, AMT можно, в конечно итоге, не активировать в MEBX.
Окей. Ну, раз уж вы не поняли иронии в моем комментарии, скажу проще: спасибо! возьму на вооружение.
Хорошая статья по настройке AMT

Желающим покопаться во внутренностях — рекомендую эти две утилиты для распаковки ME прошивки на модули https://io.smashthestack.org/me/ и https://github.com/skochinsky/me-tools
Спасибо автору за статью, буду теперь сюда посылать всех, кто меня про пинмод спрашивает.
Only those users with full accounts are able to leave comments. Log in, please.