В мои руки попал уже второй ноутбук поддерживающий Intel AMT, т.е. технологию удалённого управления на уровне железа, но по какой-то причине заблокированной производителем. Попробуем исправить этот маленький недостаток.


Подопытными будут ноутбук Lenovo t420s с процессором Core i5-2520M и чипсетом QM67, и ноутбук Dell Latitude e6450 с процессором Core i7-4800MQ и чипсетом QM87. Я намеренно указал чипсеты и процессоры, потому как для поддержки AMT они оба должны поддерживать технологию vPro.


Intel AMT базируется на Intel ME – подсистеме, встроенной в современные компьютерные платформы. Основной её компонент, контроллер, встроен в чипсет, а прошивка контроллера находится в «биосе». И именно эту прошивку мы и поправим для включения AMT.


«Биос» написан в кавычках потому, что это не совсем биос. В современных компьютерах микросхема «биоса» — это так называемый SPI флеш. В нём много регионов, в частности, регион BIOS, тот который мы обновляем чаще всего, скачав его с сайта производителя; а также в нём есть регион ME, тот который использует контроллер Intel ME, который, в свою очередь, реализует технологию AMT.


Для доступа к SPI флеш мы будем использовать программный инструмент «flash programming tool», FPT, который можно найти в пакете «Intel ME System Tools». Эти инструменты проще всего взять на этом сайте win-raid.com. Для Lenovo мы скачаем пакет «Intel ME System Tools v7.1 r3», потому, как он «For 6-series systems which come with ME firmware v7.x», а для Dell мы скачаем «Intel ME System Tools v9.0 r2», по тому, как он «For 8-series systems which come with ME firmware v9.0.x»


Во всех пакетах «Intel ME System Tools» FPT присутствует в версиях для dos, windows, windows 64bit. Для нелюбителей фана в виде программировании «запоротой» флешки программатором, для минимизации рисков, желательно использовать версию FPT для dos, а значит, нужно будет создать загрузочную флешку с этим самым DOS. Я обычно использую для этого программу HPUSBFW_Special, которая легко гуглится, к ней же нужно будет нагуглить комплект dos файлов. Кроме FPT, для редактирования прошивки нам понадобится hex редактор, например hexit, который, в случае использования загрузочной dos флешки, надо записать на эту флешку вместе с версией FPT для dos.


Но отверткой нам таки поработать придётся, а ещё и острым пинцетом ( это он на вводной картинке ), так как с завода на наших подопытных ноутбуках заблокированы все регионы SPI флеш, кроме региона BIOS, поэтому первая наша задача – разблокировать чтение и запись региона ME.


Для Lenovo разблокировка будет попроще. Читаем «hardware maintenance manual» для ноутбука t420s на предмет снятия клавиатуры. Откручиваем винты на которые указывает значок клавиатуры: один под крышкой, закрывающей память и карточку wifi; другой в аккумуляторном отсеке. Нажимаем на клавиатуру и сдвигаем её от себя. Поднимаем аккуратно, чтобы не повредить шлейф соединяющий клавиатуру с мат.платой. Не отсоединяя шлейф, сдвигаем клавиатуру на себя, чтобы получить доступ к двум контактам около чипсета.



Вышеуказанные контакты нужно будет замкнуть перед включением ноутбука, я это делаю острым пинцетом, а затем, включив ноутбук и, дождавшись прохождения процедуры POST, контакты можно разомкнуть. После загрузки ноутбука, кто куда, а я в dos, запускаем fpt с ключами:


fpt -desc -d len.bin


В результате работы программы fpt мы должны получить файлик len.bin. Если программа будет ругаться на невозможность чтения, значит вы не замкнули или же не додержали замкнутыми контакты.


Файлик len.bin, который мы получили – это регион дескрипторов, именно он содержит байты не позволяющие нам читать SPI флеш в нормальном режиме. Давайте их поправим hexit’ом:


hexit len.bin


Начиная с адреса 0x60, нам нужно, чтобы последовательность байт была 00 00 FF FF 00 00 FF FF:



Редактируем, сохраняем, закрываем hexit и записываем дескриптор регион обратно в SPI флеш:


fpt -desc -f len.bin


Блокировку чтения и записи регионов SPI флеш можно считать снятой. Выключаем ноутбук, вставляем обратно клавиатуру ( не забудьте на неё надавить, когда будете сдвигать на себя чтобы защёлкнуть).


Если вы счастливый обладатель Dell, то гуглите «Latitude e6540: Remove the Palmrest Assembly site:dell.com» и обретёте видео от производителя, как снять верхнюю крышку вашего ноутбука ( я не привожу ссылку, потому как она уже менялась ).



Под крышкой, в правом верхнем углу, возле разъема «аудио», нужно будет приподнять пленку и под ней обнаружить аудиочип. Возле него будет две точки ( одна — это вывод конденсатора, а вторая на дорожке идущей от пятого вывода аудиочипа ), которые нужно будет замкнуть также как и на Lenovo.



Дальнейший алгоритм, а именно считать/поправить/записать такой же какой мы выполняли для ноутбука Lenovo выше.


Для тех кто не уверен в своих силах, скажу, что я разблокировал два аналогичных Dell'а не обладая навыками ремонтника, единственное, потренируйтесь на выключенном ноутбуке острым пинцетом замыкать и размыкать необходимые точки не касаясь других элементов. Время на разборку и сборку – 10 минут. Кто не уложится будет мыть полы.


Разблокировав чтение регионов SPI флеш, получим его полный дамп или, как его ещё называют, фулфлеш:


fptw64.exe -d full.bin


Откроем получившийся дамп программой «Flash Image Tool» FIT, из того же пакета Intel, который мы скачали в начале статьи. Если с Lenovo все открылось без сучка и задоринки, то на дамп Dell’а FIT ругнулся несколько раз, но я проигнорировал ошибки и ворнинги. На скрине дамп открыт в нужном разделе и мы видим «Manageability Application Permanently Disabled?» установлен в Yes:



Установим его в No и заметим, что заодно поменялась ещё пара нужных нам параметров на правильные значения:



Казалось бы, это всё. Но скоро только сказка сказывается, а исправленный таким образом ME регион нельзя будет вот так просто взять и залить обратно. Дело в том, что в ME регионе есть как код фирмвари, так и пользовательские данные, которые в свою очередь состоят из данных записываемых в процессе работы Intel ME, так и данных записанных в процессе первой инициализации. Нам нужно сделать «чистый» ME, то есть без инициализации и всего остального, потому как, поменяв параметры в регионе, нам нужно будет заново проинициализировать код.


Заглянем в окно лога FIT’а и найдем куда он распаковал регионы. По умолчанию в папке запуска FIT создается подпапка с именем открываемого файла, а в ней подпапка DUMP в которой находится нужный нам «ME Region.bin».


Скачаем программу ME Analyzer и базу репозиториев c win-raid.com. Распакуем, обновим базу и исследуем наш «ME Region.bin»:


MEA.bat "ME Region.bin"



Версия фирмвари исследуемого Lenovo оказалась 7.1.86.1221, она же последняя на данный момент и размер её составляет 5 мб. Добудем оригинальную фирмвари с уже не раз упомянутого win-raid'а. Для Lenovo это будет пак «Intel ME 7 Firmware Repository Pack r20», файлик в нем, который нас интересует, должен включать версию 7.1.86.1221, быть пятимегабайтным и заканчиваться на RGN.bin. Такой файлик не нашёлся и я на свой страх и риск успешно попробовал 7.1.86.1221_5MB_ALL_PRD_EXTR.bin. Но вы можете быть не столь успешны, потому как файлы с концовкой EXTR.bin могут быть не «чистыми». Для Della’а нужный RGN файл был найден в паке «Intel ME 9.0 Firmware Repository Pack r10».


Следующим этапом откроем FIT’ом найденный фирмвари ( я знаю, что он звучит ближе к фёмвэа ). Найдем его распакованный «ME Region.bin» и заменим им «ME Region.bin» в папке регионов фулфлеша, открытого FIT’ом. Очевидно, что нужно было действовать наоборот, то есть сначала получить ME регион оригинальной фримвари, но тогда бы нарушилась последовательность повествования.


И вот у нас есть открытый в FIT фулфлеш, изменены необходимые значения, заменен файл «ME Region.bin» осталось зайти в меня Build и… правильно, выбрать «Build Settings» в которых убрать галку «Generate intermediate build files», а затем выбрать в том же меню Build или нажать F5. В логах мы можем найти, где создался результат нашего билда — файл «outimage.bin». По умолчанию он создается в папке запуска FIT.


Шить получившийся outimage.bin мы не будем, а откроем его в FIT, заберем из получившейся папки DUMP файл «ME Region.bin» и зашьем этот регион при помощи FPT:


fptw64.exe -me -f "ME Region.bin"


Готово. Перезагружаемся. В Dell жмем после\вовремя поста F12 и в открывшемся boot menu видим новую строчку. В Lenovo жмем Control-P, далее 1 и видим в MEBX новый пункт. Целью этой статьи было разблокировать AMT, а работа с ней оставляется для самостоятельного освоения.


В конце хотелось бы поблагодарить пользователя CodeRush, который сначала упомянул, что драконы существуют, а потом "сам привел меня в их логово".


Весь материал есть компиляция интернета, многое почерпнуто с сайта win-raid, статей Николая ака CodeRush. Эксклюзивным является только разблокировка регионов Lenovo — по крайне мере, сходу я не нашел годного руководства и мне пришлось дважды разобрать весь ноутбук и «прозвонить» весь путь от микросхемы звука, спрятанной с обратной стороны платы под слотом pci express, до двух контактов, которые торчали на виду около чипсета. Ноутбук, прости за варварство, но зато у тебя свежая термопаста на процессоре.


Спасибо всем за внимание!

Поделиться с друзьями
-->

Комментарии (23)


  1. navion
    09.05.2016 22:35
    +3

    А TPM так можно включить?


    1. alex1299
      10.05.2016 12:26

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

      cscript.exe SetConfig.vbs SecurityChip Active

      Перезагружаемся и, если в биосе включен aes путем редактирования прошивки, во время загрузки услышим пять бипов. Но ОСь TPM всё равно видеть не будет, хотя он и активирован — нужно править биос.


    1. CodeRush
      10.05.2016 14:18

      Только если в прошивке уже есть необходимые драйверы и не хватает только самого TPMа. Обычно в таком случае нужно припаять сам чип (SSOP-28, паяется руками без проблем) и пару SMD-резисторов и конденсаторов для его питания. Иногда еще придется найти strap-резисторы и поменять их так, чтобы драйверы TPM начали стартовать.


      1. alex1299
        10.05.2016 15:09

        В моём случае, lenovo t420s tpm отключен, нужная микросхема распаяна:



        И TPM, как я говорил, даже можно активировать, но в ОСи его не видно.


        1. navion
          10.05.2016 15:29

          А как реализована блокировка? Может быть BIOS просто проверяет MTM (как у Wi-Fi адаптеров) или есть выключатель в сервисном меню, которое используют при замене материнки?


          1. alex1299
            10.05.2016 15:35
            +1

            На плате есть отдельная микросхема еепрома, она, кстати, видна, под контактами, которые замыкаются на леново. Возможно установки на счёт aes и tpm есть там.


  1. ValdikSS
    09.05.2016 23:16
    +2

    О, если Anti-Theft и Computrace полностью отключить из BIOS (disable permanently), то их, похоже, можно таким же образом активировать заново?


    1. alex1299
      10.05.2016 12:31
      +1

      Я не пробовал. Сходу, кажется, что «да», но, например, пароль на биос хранится в отдельной миксросхеме еепрома или же ключи шифрования хранятся где-то в TPM, кажется и так просто их не снести.


    1. CodeRush
      10.05.2016 14:19

      Конечно. Все эти «permanently» — зачастую фикция. Anti-Cheft, вообще говоря, больше не поддерживается, и включать его я не рекомендую, а вот драйверы LoJack/Computrace лучше удалять не думая, т.к. никаким «permanently» там и близко не пахнет.


  1. rockin
    10.05.2016 01:08
    +2

    Люблю такие статьи.
    Чётко, точно, для конкретной модели, конкретная проблема и её решение.
    Молодец :)

    Вроде пока и не нужно, но такой способ подачи материала отлично откладывается в подсознании и неожиданно сам собой извлекается в нужный момент. Побольше бы таких хау-ту на хабре.


    1. alex1299
      10.05.2016 12:39

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


  1. Jeditobe
    10.05.2016 01:20

    А как разблокировать интеловское видеоядро?


    1. atmx
      10.05.2016 11:23

      Для интеловского видео ядра — нужно доп питание + разводка элементов на плате, для общения того самого ядра с хабом (H-HM-QS и т.д.). В биосе максимум что может быть — это уточнение какое должно быть видео ядро, на какой частоте оно будет работать и при какой температуре выключаться


      1. Evengard
        10.05.2016 12:20

        На моей плате скорее всего это всё есть, вот только у меня Asus (G750JH), и где там что замыкать для чтения-записи я если честно без понятия.


  1. deniracer
    10.05.2016 11:22

    А есть ли у кого то опыт в развертывании решения удаленного управления на базе Intel vPro and Intel AMT? 100-200 компов? Через туннели и прочие наты? :-) Чем лучше, удобнее, стабильнее, безопаснее управлять? Оправданно ли будет внедрение монстра типа SCCM? Есть ли решение которое бы использовало сертификаты для AMT? Кто использовал поделитесь опытом.


  1. 12sd
    10.05.2016 11:22

    А что делать, если в новых чипсетах есть проверка подписи firmware?
    Вроде как Intel Secure Boot называется.
    На новых ThinkPad есть.


    1. alex1299
      10.05.2016 12:55

      Надо с этим столкнуться. По факту, мы не правим ничего в фулфлеше связанного с постоянным кодом, мы правим только пользовательские данные. При активном TPM, после включения ноутбка с модифицированным биосом раздаются пять коротких бипов, но то при модифицированном UEFI коде и бипы при включении не мешают дальнейшей работе.


      1. 12sd
        10.05.2016 16:17

        Хм, интересно. Но вряд ли таким образом можно исправить whitelist WLAN/WWAN PCI-устройств.
        Раньше это можно было сделать, сейчас на r/thinkpad сабреддите жалуются, что теперь это невозможно.


  1. Notimer
    10.05.2016 11:23
    +7

    «В конце хотелось бы поблагодарить пользователя CodeRush, который сначала упомянул, что драконы существуют, а потом „сам привел меня в их логово“.»
    Интересная все таки вещь, Хабр: сначала появляется статья, предупреждающая чуть ли не о восстании машин… а затем — как это восстание устроить.


    1. alex1299
      10.05.2016 12:46

      Ну, так идея в том, что «intel me» — неотъемлемая часть чипсета, она работает всегда. И знания, как врага включить на «полную катушку», дают нам дополнительные сведения, как его выключать, где искать его код, как получать доступ к нему. Я разблокировал AMT не для того, чтобы им пользоваться, а только лишь потому, что мне было интересно. В биосе леново, кстати, появился пункт связанный с AMT, где его можно выключать, а также, AMT можно, в конечно итоге, не активировать в MEBX.


      1. Notimer
        11.05.2016 02:57

        Окей. Ну, раз уж вы не поняли иронии в моем комментарии, скажу проще: спасибо! возьму на вооружение.


  1. cyber-security
    10.05.2016 13:37

    Хорошая статья по настройке AMT

    Желающим покопаться во внутренностях — рекомендую эти две утилиты для распаковки ME прошивки на модули https://io.smashthestack.org/me/ и https://github.com/skochinsky/me-tools


  1. CodeRush
    10.05.2016 14:21
    +2

    Спасибо автору за статью, буду теперь сюда посылать всех, кто меня про пинмод спрашивает.