Есть катего­рия людей, которые счи­тают, что из тех­ники нуж­но выжимать все 100% ее потен­циала, то есть она дол­жна работать до тех пор, пока окон­чатель­но не истле­ет. Сегод­няшняя статья — имен­но для них. Мы про­апгрей­дим Wi-Fi в ноут­буке Lenovo G710 и отклю­чим white list, даже не вос­поль­зовав­шись ассем­бле­ром.

Все началось с того, что я при­обрел себе ноут Dell Vostro 5301. И вот в один прек­расный день, гоняя по локал­ке оче­ред­ной десяток гигабайт, я подумал, что, имея роутер с Wi-Fi 5 и ноут с его под­дер­жкой, глу­по его не исполь­зовать на всю катуш­ку. Я вклю­чил на роуте­ре Wi-Fi 5, поп­робовал, и мне пон­равилось.

 

Тренируемся на кошках

Но воз­никла одна проб­лема: осталь­ные ноуты в моей сети не уме­ли Wi-Fi 5, поэто­му, посидев и подумав, я решил, что приш­ла пора апгрей­да. Обно­вить пред­сто­яло два аппа­рата: огры­зок ASUS X553MA, который тру­дит­ся у меня фай­лопомой­кой, и Lenovo G710, которым поль­зует­ся жена. Это как раз тот слу­чай, ког­да из короб­ки нет драй­веров, их приш­лось тянуть с AUR, бла­го про­вод­ной адап­тер на ноут­буке завел­ся.

Па­мятуя о проб­лемах с род­ной вай­файкой Lenovo G710, я решил выб­рать заведо­мо бес­проб­лемный адап­тер Intel Wireless 7260, для которо­го в ядре Linux есть драй­веры. Так­же я заранее учел, что в Lenovo G710 и ASUS X553MA раз­ные разъ­емы PCI Express для под­клю­чения адап­теров и что со сме­ной адап­тера в ASUS при­дет­ся поменять еще и антенну. Сме­на антенны необ­ходима из‑за раз­ных разъ­емов на род­ном и новом адап­терах. Кро­ме того, в X553MA уста­нов­лена лишь одна антенна main (эко­номия, одна­ко), а новый адап­тер пре­дус­матри­вает под­клю­чение двух антенн, основной и вспо­мога­тель­ной. Бла­го сто­ят они недоро­го и уста­нав­лива­ются эле­мен­тарно. Вот так это доб­ро выг­лядит.

Адаптер Wi-Fi для Lenovo G710
Адап­тер Wi-Fi для Lenovo G710
Адаптер Wi-Fi для ASUS X553MA
Адап­тер Wi-Fi для ASUS X553MA
Новая антенна для ASUS X553MA
Но­вая антенна для ASUS X553MA

Приш­ло вре­мя все это дело уста­новить и под­клю­чить. Пер­вым на оче­реди был ASUS X553MA, и с ним, к моему удив­лению, все прош­ло глад­ко: адап­тер встал, зарабо­тал, и сис­тема его сра­зу же под­хва­тила, приш­лось толь­ко имя адап­тера в юни­те wpa_supplicant и dhcpcd поменять.

 

Вайтлист и вендорлок

А вот с Lenovo G710 получи­лось гораз­до веселее: там в биосе есть вен­дорлок. При началь­ной заг­рузке UEFI опре­деля­ет уста­нов­ленный адап­тер и ищет его в white list’е, зашитом про­изво­дите­лем. Сто­ит ли говорить, что Intel Wireless 7260 там не ока­залось и ноут­бук встре­тил меня радос­тным сооб­щени­ем.

Error
Error

В прин­ципе, я к это­му был готов еще на эта­пе пла­ниро­вания апгрей­да, но успех с ASUS все­лил в меня надеж­ду, что замена адап­тера может про­катить. Не про­кати­ло…

По­иск в гуг­ле показал, что проб­лема в целом извес­тная и лечит­ся переп­рошив­кой биоса про­пат­ченной вер­сией, которую мож­но поис­кать в интерне­те. К нес­частью, биоса для моей модели не наш­лось, остался пос­ледний вари­ант: ковырять UEFI самос­тоятель­но.

В сети в целом есть ряд неп­лохих ману­алов на тему обхо­да white list’а, нап­ример на Хаб­ре (изоб­ражение экра­на я взял отту­да, пос­коль­ку мое не сох­ранилось), и там нет ничего зап­редель­но слож­ного. Надо рас­паковать UEFI, най­ти там учас­ток с тек­стом ошиб­ки, пос­мотреть, какая фун­кция на него ссы­лает­ся, и заменить один из условных перехо­дов дру­гим условным перехо­дом — или безус­ловным перехо­дом, тут есть некото­рая вари­атив­ность. Сму­щали меня во всем этом две вещи: во‑пер­вых, боль­шинс­тво ману­алов заточе­ны под вин­довый софт, во‑вто­рых, с ассем­бле­ром я, мяг­ко говоря, на вы.

Нес­коль­ко углу­бив­шись в тему, я узнал про замеча­тель­ную прог­рамму UEFITool и нашел пару при­меров по работе с ней: часть 1 и часть 2. Это приб­лизило меня к решению проб­лемы, одна­ко рекомен­дации во всех при­веден­ных выше источни­ках носили ско­рее общий харак­тер. И вот тут я нат­кнул­ся на от­личную статью авто­ра под ником p0358, опи­сыва­ющую в под­робнос­тях, как он ковырял UEFI сво­его Lenovo G510, решая ту же проб­лему, что и я.

Пос­ле ее проч­тения ста­новит­ся понят­но, как най­ти завет­ное мес­то, в котором нуж­но испра­вить jz на jmp, что­бы обой­ти white list. От себя могу добавить, что при­седа­ния авто­ра с исполь­зовани­ем двух вер­сий UEFITool излишни, впол­не мож­но обой­тись и акту­аль­ной вер­сией. Кро­ме того, в нас­тоящее вре­мя бес­плат­ная вер­сия деком­пилято­ра IDA Free уме­ет работать с UEFI-бинар­никами, так что без IDA Pro тоже мож­но обой­тись. Но глав­ная фича этой статьи зак­люча­ется в том, что автор обна­ружил в коде UEFI Lenovo G510 перемен­ные, которые отклю­чают white list вов­се, и это очень упро­щает все мероп­риятие.

Те самые переменные в бинарнике
Те самые перемен­ные в бинар­нике

Ко­неч­но, Lenovo G510 — это не G710, одна­ко они ровес­ники и, счи­тай, из одной линей­ки, поэто­му я понаде­ялся, что их про­шив­ки не дол­жны замет­но отли­чать­ся и про­пат­чить биос удас­тся малой кровью. Забегая впе­ред, ска­жу, что так все и получи­лось.

warning

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

 

От теории к практике

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    6 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии