Lenovo z580 дамп биоса

Наши Услуги

Восстановление BIOS ноутбука

Lenova G580 (материнская плата LG4858I).

При включении ноутбука, Lenovo G580, ноутбук включается, изображение при этом появляется и может нормально работать, после выключения ноутбука, ноутбук включается, но изображение, однако отсутствует и так может повторяться несколько раз. После Прошивки биоса (скачать BIOS) ,ноутбук начал нормально включаться и работоспособность была восстановлена.

Lenovo Ideapad 110-15IBR ( Материнская плата cg520 nm-a804 )

При включении ноутбука, Lenovo Ideapad 110 15IBR, ноутбук включается, и через несколько секунд выключается , изображение при этом не появляется. После Прошивки биоса (скачать BIOS) ,ноутбук начал нормально включаться и работоспособность была восстановлена.

ASUS UX31E сброс пароля БИОС

Для сброса пароля, установленного на вход БИОС ASUS UX31A, необходимо одновременно замкнуть площадки JRST2001 JRST2002.

HP ProBook 440 G4 не стартует

При включении , ноутбук включается и в течении 10 сек отключается , изображение отсутствует , У ноутбука установлена материнская плата DA0X81MB6E0 Rev:E . Помогла заливка дампа BIOS Скачать. Микросхема BIOS 25B128SCSIG (производитель GIGADEVICE)

ASUS X550LC не стартует от батареи

При включении зарядного устройства и установленной батареи ноутбук включается и нормально загружается операционная система Windows 10 , в процессе работы операционной системы Windows 10, вытаскиваешь зарядное устройство и ноутбук продолжает работать , при выключенном зарядном устройстве, от одной батареи , включается и сразу отключается, хотя батарея полностью заряжена , У ноутбука установлена материнская плата X550LС ver:2 . BIOS 403, последний, с офф сайта, Помогла заливка дампа BIOS ver: 402.Скачать. Микросхема BIOS 25Q64FVS10

ACER Aspire ES1-512 не работает тачпад в Windows 10

При установленной операционной системы Windows 10 не работает тачпад при этом в операционной системе Windows 8.1 работает , необходимо обновить версию BIOS с 1.06 до версии 1.10 в версии 1.10 , даже появляется сторка в BIOS TouchPad

Настройка BIOS ACER_ASPIRE_A315

Особенность настройки БИОС в данной модели — так возникла необходимость установить SECURE BOOT в DISABLE , данную операцию невозможно сделать без установки Supervisor Password . только после установки Supervisor Password опция SECURE BOOT становится активной. Особенностью данной модели также является, что загрузка с внешних usb носителей возможна только когда USB носитель имеет формат UEFI.

Ремонт ноутбука HP Comaq CQ62 (08.09.2017)

Ремонт ноутбука HP ProoBook 6520S (14.01.2017)

В Ремонт поступил ноутбук HP ProoBook 6520S, ноутбук работоспособный, операционная система Windows 7 не загружается, вылетает синий экран, при попытке войти в BIOS выскакивает окно ввести пароль. Клиент пароль забыл. возникла необходимость пере прошивки BIOS при этом материнская плата имеет аббревиатуру H9265-4 48.4GKO6.041 микросхема BIOS 25Q3205 , в ремонте присутствовал второй такой же ноутбук , однако аббревиатура материнской платы H9265-1 48.4GKO6.011 микросхема BIOS 25L3205 ,после снятия дампа BIOS и пере прошивке на программаторе , материнская плата H9265-4 48.4GKO6.041 стар тонула однако без изображнения.Визуально материнские платы ничем не отличаются однако BIOS разные.

— BIOS для H9265-4 48.4GKO6.041 (Загрузить)

— BIOS для H9265-1 48.4GKO6.011 (Загрузить)

Ремонт ноутбука ASUS X201E (12.01.2017)

В Ремонт поступил ноутбук ASUS X201, ноутбук работоспособный, операционная система Windows 7 загружается , однако отключена ETHERNET сетевая карта и WiFI при попытке войти в BIOS и включить не увенчались успехом ,потому как вход в bios происходил в режиме user , в данном режиме поля изменения данных настроек не активны , вход в режиме администратора не возможен так как был запоролен. Методика поиска входа в bios следующая:

— Загружаемся в операционную систему Windows и изменяем дату и время на (предположим 2002/01/02) , перезагружаемся и нажимаем F2 входим в BIOS в качестве USER нажимаем "Alt"+ "R" и видим окно входа Enter Rescue Password с датой, дате 2002/01/02 соответствует пароль ALAA4ABA набор паролей соответствующей дате приведен ниже.

  • 2002-01-02 ALAA4ABA 2002-01-06 A2BBAAAL 2002-01-10 DAAABADB 2002-01-14 4HOBOBL2
  • 2002-01-03 A4219DAA 2002-01-07 A0BB00LD 2002-01-11 BA12LHL0 2002-01-15 4B0BDBA1
  • 2002-01-04 AA4HBBLA 2002-01-08 ABDDO10D 2002-01-12 BAH4A1AL 2002-01-16 HADL1AD1
  • 2002-01-05 AAAALO0B 2002-01-09 BAAADAAB 2002-01-13 A2AA0ADB 2002-01-17 H1AAALLC

Ремонт Ноутбука Lenovo Z580 ( 21.04.2016г.)

В Ремонт поступил ноутбук Lenovo Z580, при включении ноутбука, ноутбук включается, появляется подсветка матрицы и больше ничего, после выключения и включения через кнопку рековери появляется меню загрузки, однако при выборе и нажатии на любой пункт меню ничего не происходит. Помогла пере прошивка BIOS(основного) и KBC на программаторе. На материнской плате (DALZ3AMB8F0 REV: E) 2 микросхемы BIOS основная 25Q64 VFS 8mb и KBC 25X80 512 MB (Загрузить рабочую прошивку).

Ремонт Ноутбука Lenovo Z580 ( 01.07.2015г.)

В Ремонт поступил ноутбук Lenovo Z580, при включении ноутбука происходит включение ноутбука, после выключения и следующего включения начинает мигать светодиод питания и ноутбук не включается, после переустановки модуля памяти в другой слот ноутбук первый раз включается нормально, но в следующий раз начинает мигать светодиод включения и ноутбук не включается, помогла пере прошивка BIOS(основного) на программаторе. На материнке 2 микросхемы BIOS основная 25Q64 VFS 8mb и KBC 25Q80 1 MB

В Ремонт поступил ноутбук Lenovo G555, при включении ноутбука
, ноутбук работает нормально за исключением цифровой клавиатуры (вообщне не работает), нажатие клавиши NUM LOCK ни к чему не приводит , а также не работает клавиша DEL.При детальном изучении BIOS было выявлено ,что прошивка для Lenovo G455 (см.фото), причем updateBIOS осуществлялся с офицального сайта LENOVO ,после поиска оригинального дампа для Lenovo G555 и прошивки на программаторе, работоспособность цифровой клавиатуры и кнопки DEL , была восстановлена.

В Ремонт поступил ноутбук Samsung NP-R510, при включении ноутбука и входе в BIOS, BIOS имеет усеченный вид (не полный), ОС не загружается, при извлечении микросхемы BIOS из материнской платы (путем выпаивания) и попытках прошить данную микросхему на программаторе результатов не дало (ошибка записи). Только замена микросхемы BIOS () и прошивка ее на программаторе дало положительный результат.

Недавно понадобилось поставить новую wifi карточку стандарта ac в свой ноутбук Lenovo x230, в котором есть whitelist для wlan карточек. Ниже опишу свои изыскания по отключению whitelist’а.

Для начала нам надо слить дамп нашего биоса, сделать это можно с помощью утилиты FPT
fpt -d bios.rom -BIOS
Далее нам понадобится утилита PhoenixTool 2.52. Запускаем её, выбираем наш bios.rom и ждём, пока она его распакует, далее в поле Manufacturer выбираем Lenovo и жмём кнопку Advanced, там ставим галочки «Allow user to modify other modules» и «No SLIC»

Нажимаем «Done» и «Go», когда откроется окошко

ничего не нажимаем и идём в папку DUMP, куда распакован наш биос. Далее нужно найти файл отвечающий за whitelist. Ищем просто по тексту ошибки (в кодировке UTF-16), которая выводится на экран при вставленном модуле не из вайтлиста «1802: Unauthorized network card is plugged in»

Находим файл 79E0EDD7-9D1D-4F41-AE1A-F896169E5216_2207.ROM — это модуль биоса для вайтлиста.
Далее грузим его в IDA, смотрим код и ищем нашу строку «1802: Unauthorized network card is plugged in»

К этой строке идёт обращение в процедуре Sub_A0C. Т.е. процедура Sub_A0C предположительно занимается выводом ошибки на экран, смотрим откуда она вызывается (кликаем по имени процедуры и нажимем клавишу X на клавиатуре)

Видим что это процедура Sub_B20. Идём в эту процедуру и нажимаем пробел для перехода к схематичному представления кода.

Видим что процедура Sub_A0C вызывается из блока кода на метке Loc_BDD. Далее можно проследить условные переходы к этой метке и т.д. Но я решил, чтобы лучше понять код работы этой процедуры, пройти код от начала процедуры.
Итак, первое условное ветвление проверяет регистр edx на ноль

т.к. регистр edx выше в этой процедуре нигде не инициализируется, то понятно, что ему должно присваиваться значение перед вызовом процедуры Sub_B20. Это можно увидеть в коде
и
Что означает значение в регистре edx я не понял, поэтому пройдёмся по обоим веткам ветвления.
Пойдём для начала по правой веке, на Loc_C6E

В eax кладётся адрес данных qword_270, двойным щелчком по qword_270 переходим к просмотру этой записи, далее переходим на вкладку Hex View-A. Это и есть наш whitelist, он идёт с адреса 270h до 3FFh. С форматом тоже всё просто, каждая запись длинной в 16 байт (4 слова по 32bit) соответствует одному устройству: первое слово — какой-то флаг, принимающий значение 0, 1, 5 или 6, второе слово — это system id, третье — subsystem id, четвёртое — ещё один флаг, имеющий значение 0 или 1. Предполагаю что первый флаг определяет тип устройства: 0 — wifi карточка, 1 — модем, 5 — ?, 6 — конец списка.

Вернёмся к коду. Сравниваем eax с шестёркой, а шестёрка у нас — это конец вайтлиста, т.е. если вайтлист получается пустой, то идём сразу на Loc_BDD, которая у нас вызывает ошибку. Это условие нам не интересно, т.к. вайтлист у нас не пустой, и условие не выполнится. Далее кладём адрес qword_270 в регистр rdx, проверяем eax (первый флаг записи в вайтлисте) на ноль, если флаг отличный от нуля, переходим к ошибке. Это условие нас тоже не интересует. Это же условие является началом цикла обхода вайтлиста.
Дальше командами

Помещаем system id из вайтлиста в регистр ecx. Регистр r8 здесь выступает в роли инкремента в цикле, изначально он равен нулю.
Далее сравниваем ecx (system id из вайтлиста) и значение в памяти по адресу в регистре rdi.

Несложно догадаться, что по адресу в регистре rdi у нас лежит идентификатор нашей вставленной wifi карточки, а в начале процедуры в регистр rdi мы кладём r8, т.е. процедуре Sub_B20 в качестве параметра использется регистр r8, где должен лежать адрес ячейки памяли с идентификатором нашей карточки.
Если идентификатор не совпал, то идём на Loc_CBA, там мы увеличиваем инкрементный регистр r8 на 10h (для этого в регистре r13w у нас заранее должна лежать единица)

и проверяем, не в конце ли мы вайтлиста

Если в конце, то выходим из цикла и выдаём ошибку, если не в конце, то идём в начало цикла.
Понятно, что для обхода вайлиста, нам надо убрать условный переход при сравнении system id, т.е. заменить jnz short loc_CBA на jmp $+2 .
Далее, если system id совпал, идёт аналогичный код для сравнения subsystem id

Если subsystem id не совпал, то перебираем по циклу идентификаторы дальше. Тут нам тоже необходимо поправить условные переход на безусловный jz short loc_CD5 на jmp short loc_CD5 .
Дальше по коду уже нет переходов на ошибку, но есть интересный код, проверяющий второй флаг в записи вайтлиста, про который я писал ранее, он сравнивается с регистром r13d, и если совпадает, то выполняется некий дополнительный кусок кода. Что делает этот код понять трудно, по анализу вайтлиста можно заметить, что этот флаг стоит только у карточек фирмы Intel.

Так, с правой веткой разобрались, теперь пройдёмся по левой ветке.Там у нас код работы с вайтлистом начинается с метки Loc_C18. Аналогично проверяется, не пустой ли whitelist:

Далее сравнивается eax (первый флаг) и r13d (что за параметр лежит в r13d я так и не разобрался, в начале процедуры него кладётся значение по адресу [rbx+1]), далее в зависимости от выполнения этого условия, попадаем сразу на код проверки system id, либо выполняем интересное сравнение

Проверяем первый флаг в записи вайтлиста на 5, если условие выполняется, то пропускаем эту запись вайтлиста (т.е. игнорируем wifi карточку) и идём далее по циклу проверки.
Чтобы понять что же это за такой интересный флаг, надо понимать, что передаётся в процедуру Sub_B20. Если помните, в правой ветке кода, если этот флаг был отличный от нуля, то выдавалась ошибка о неподдерживаемой карте. Т.е. чтобы карточка с флагом 5 загрузилась, должны выполниться следующие условия вызова процедуры Sub_B20: регистр edx должен быть отличным от нуля, а регистр r13d не должен быть равен пяти ( cmp eax, r13d , а в eax у нас лежит наш флаг равный пяти). Можно лишь догадаться, что для запуска карточки с таким флагом, требуется ещё какое-то условие, кроме нахождения её в вайтлисте. Дальше выполнять анализ для меня было довольно сложно, поэтому, что же это за условие, узнать не удалось.

Далее по коду, мы аналогично правой ветке, проверяем в цикле system id

Здесь нам надо также заменить условный переход jz loc_DF3 на безусловный jmp loc_DF3 .
Что интересно, далее в левой ветке нет проверки subsystem id, т.е. достаточно совпадения system id. Из вышеизложенного можно предположить, что правая ветка — проверка wifi карточек, а левая проверка модемов. А в регистре edx при вызове функции содержится тип устройства: 0 — wifi, 1 — модем. Но тут тоже непонятка, т.к. каточка 0087:8086 с флагом 5 — это wifi+wimax, а не модем, да и в edx может быть больше единицы, т.к. из edx вычитается r13d, а потом сравнивается с четвёркой:

Собственно на этом анализ можно заканчивать. Нужные места для патча мы нашли.
Переводим команды в опкоды и делаем замены в hex редакторе, в итоге получаем такой патч:

Сохраняем пропатченый файл 79E0EDD7-9D1D-4F41-AE1A-F896169E5216_2207.ROM и нажимеам в окне PhoenixTool кнопку Ok.
PhoenixTool соберёт новый биос с именем bios_SLIC.rom.

Осталось дело за малым, необходимо прошить новый биос. В свежих ноутбуках Lenovo, включая мой x230, изменённый bios нельзя прошить программно, поэтому шьём его программатором. Фото процесса прошивки через программатор к сожалению не делал. Биос находится в микросхеме MX25L3206E рядом с разъёмом ExpressCard. Эта микросхема представляет из себя обычный SPI EEPROM 25ой серии, простой программатор для которой стоит 300р.

На этом всё, наслаждаемся работой новой wifi карточки.


[an error occurred while processing the directive]
Карта сайта