Прошиваем HP COMPAQ BIOS

Итак, суть проблемы на примере HP Compaq 8710p


Дано:
Версия BIOS: 68MAD F.0F

Найти:
Способ прошивки модифицированного 68MAD BIOS.

Известные на данный момент трудности:
Стандартные rompaq.exe и HPQFlash.exe прошивают только оригинальные версии BIOS, т.е. при подсовывании модифицированного BIOS выдают сообщение о неправильной цифровой подписи.
И поэтому стандартные rompaq.exe и HPQFlash.exe были пропатчены, и теперь отлично работают c модифицированными BIOS, но... прошивают адреса 00000h-EFFFFh (это видно после сравнения прошиваемого BIOS (rompaq_.exe /U) с файлом резервной копии (rompaq_.exe /B), т.е. адреса F0000-FFFFF не перезаписывают.
Это видно при работе rompaq_.exe из командной строки:
[rompaq_.exe /U] -> writing banks 0...14
[rompaq_.exe /B] -> reading banks 0...15 -> saving file...

Т.е. пропатченные rompaq.exe и HPQFlash.exe (равно как и СТАНДАРТНЫЕ при работе с оригинальным файлом BIOS) не перезаписывают 15-й банк...

Может у кого-нибудь есть какие-нибудь соображения на этот счет?
Заранее спасибо!

Аватар пользователя Root

Шить на программаторе и не создавать себе лишних трудностей. Возможно F0000-FFFFF защищены битом Write Protect...

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

А какие-нибудь софтверные решения есть?
Пробовал UniflashRE ver. 1.47re build 08 от 01.08.2007, но этот BIOS не поддерживается...

А подробнее про бит Write protect... Где его искать и как изменить?

Аватар пользователя Root

Write Protect - читать даташит на флэшку. Думать. Можно попытаться дизассемблировать ПО прошивальщика, чтобы понять в каком месте происходит затык.

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

Стандартные HPQFlash.exe и rompaq.exe при работе с оригинальным файлом BIOS тоже не перезаписывают последний 15-й банк...
Может быть "затык" в EEPROM или CMOS.
Здесь HP DMI Tools, некоторые из них работают...


Вот, что могут HPBI103.exe и HPBQ189.exe:
Assets Utility Version 1.02 Copyright (c) 2006 Hewlett-Packard Corporation

Usage: HPIB103.EXE [CMD] [TYPE] {string}
CMD    = READ/WRITE/CHECK/MODIFY/GENERATE   (REQUIRED)
TYPE   = SERIAL/ASSET/MODEL/ID/SKU/SLP/CHANID/WALLPAPER/BURNFLAG     (REQUIRED)
string = serial number/asset tag/model name/id/sku number/mb serial/channel id/wallpaper/burnflag id...
         file name/descriptor_state/mgmt_engine_state/...
         override_status (string parameter is optional if CMD=READ)

Example: HPIB103 read serial
HPIB103 write model M700
HPIB103 modify asset 6622HVS3P025
HPIB103 read SLP
HPIB103 write SLP [ON,OFF]
HPIB103 write SKU [sku number]
HPIB103 read SKU
HPIB103 write CHANID [id]
HPIB103 read CHANID
HPIB103 write WALLPAPER [wallpaper id]
HPIB103 read WALLPAPER
HPIB103 write BURNFLAG [Burn flag id]
HPIB103 read BURNFLAG
HPIB103 generate serial A:\SN.TXT

HPBQ189.exe

/?                 : Show this help message.
--help             : Show this help message.
--displayall       : Show all data in EEPROM.
--wassettag string : Write Asset Tag to EEPROM
--serialnum string : Write Serial number to EEPROM
--wmodel string    : Write Notebook model to EEPROM
--wskunum string   : Write SKU number to EEPROM
--wguid number     : Write GUID to EEPROM
--wuuid number     : Write UUID to EEPROM
--wmacid number    : Write MAC address to EEPROM
--wqpflag          : Enable QuickPlay flag
--wctolocal string : Write CTO Localization Code to EEprom
--savetofile       : Save EEPROM to file-ESCD.DAT
--loadfromfile     : Program EEPROM from file-ESCD.DAT

Warning : string/number will be truncated if too long!

Examples : 
	coescdrw --displayall
	coescdrw --wserialnum FW32167883
	coescdrw --wmodel Presario X6000

И что могут означать строки внутри .bin файла BIOS...

...This program cannot be run in DOS mode...

...C:\MRC103\OUT32\MINITDLL.pdb...

Аватар пользователя Root

За DMI утилиты - спасибо. Скачал, положил к себе в архив.

Цитата:
...This program cannot be run in DOS mode...

...C:\MRC103\OUT32\MINITDLL.pdb...
точно не знаю. Возможно, что недовычищенные остатки от отладочной информации.

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

Еще один замечательный факт:
Блоки E0000h-EFFFFh и F0000h-FFFFFh абсолютно одинаковые, оба начинаются

...This program cannot be run in DOS mode...

и включают в себя SLIC 2.0 маркер...
Т.е. блок E0000h-EFFFFh перезаписывается, включая SLIC маркер, а F0000h-FFFFFh - защищен...
Нужен способ обхода этой "защиты от записи"!

Похоже, что изменения необходимо внести в модифицированный (или оригинальный) файл BIOS перед прошивкой...

Аватар пользователя Compiller

А не пробовали как написано тут
HPQFlash VERSION 4.30.4.1 patched
@ HP COMPAQ BIOS's MODERS COMMUNITY

Please find HERE a new version of patched HPQFlash VERSION 4.30.4.1.

This archive contains an original version, a patched version witch bypass the ROM signature, a patched version witch bypass the ROM and VERSION signature. Theses 2 patched version also include a modification to increase the "verbosity" of the log file.

With this new version I hope we will make some progress on 2 SLIC table BIOS's.

For people interested by the code:

HPQFlash.exe VERSION 4.30.4.1 MODS

HOW TO INCREASE VERBOSITY OF THE LOG FILE

IN HPQFlash.exe
Search string 0F84530100 And replace by 909090909090
Search string 0F84850100 And replace by 909090909090

Save and close.

HOW TO SUPPRESS BIOS FILE SIGNATURE CHECKING

IN HPQFlash.exe
Search string 6A006A008B4DE4518B55F0528B45F4508B4DD851FF55E88945 D48B55D4
replace by 909090909090909090909090909090909090B8010000008945 D48B55D4

Save and close.

HOW TO SUPPRESS BIOS VERSION SIGNATURE CHECKING (for testing purpose)

IN HPQFlash.exe
Search string 6A006A008B4DE4518B55F0528B45F4508B4DD851FF55E88945 D48B45D4
replace by 909090909090909090909090909090909090B8010000008945 D48B45D4

Save and close.

================For those interested by the code=========================

FlashDLL_4.30.4.1.exe

40C2F0 sub_40C2F0 proc near
40C2F0
40C2F0
40C2F0 SystemTime = _SYSTEMTIME ptr -62Ch
40C2F0 var_61C = word ptr -61Ch
40C2F0 var_61A = byte ptr -61Ah
40C2F0 String = word ptr -414h
40C2F0 var_412 = byte ptr -412h
40C2F0 var_4 = dword ptr -4
40C2F0 arg_0 = dword ptr 4
40C2F0 arg_4 = byte ptr 8
40C2F0
40C2F0 sub esp, 62Ch
40C2F6 mov eax, dword_44C000
40C2FB xor eax, esp
40C2FD mov [esp+62Ch+var_4], eax
40C304 cmp dword_44D5A0, 0
40C30B jz loc_40C464 -----> 6 NOP's (increase verbosity)
40C311 push esi
40C312 push edi
40C313 xor eax, eax
40C315 push 206h
40C31A push eax

FlashDLL_4.30.4.1.dll

2B000 sub_1002BC00 proc near
2B000
2B000


2B000 var_334 = dword ptr -334h
2B000 String = byte ptr -330h
2B000 var_32F = byte ptr -32Fh
2B000 SystemTime = _SYSTEMTIME ptr -124h
2B000 var_114 = dword ptr -114h
2B000 var_110 = byte ptr -110h
2B000 var_10F = byte ptr -10Fh
2B000 var_4 = dword ptr -4
2B000 arg_0 = dword ptr 8
2B000 arg_4 = byte ptr 0Ch
2B000
2B000 push ebp
2B001 mov ebp, esp
2B003 sub esp, 334h
2B009 mov eax, dword_1004CB6C
2B00E xor eax, ebp
2B010 mov [ebp+var_4], eax
2B013 cmp dword_10050C04, 0
2B01A jz loc_1002BDA5 -----> 6 NOP's (increase verbosity)
2B020 mov [ebp+var_110], 0
2B027 push 103h
2B02C push 0
2B02E lea eax, [ebp+var_10F]
2B034 push eax
2B035 call sub_10011E30

++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++

HOW TO SUPPRESS BIOS FILE SIGNATURE CHECKING

FlashDLL_4.30.4.1.dll

Search string 6A006A008B4DE4518B55F0528B45F4508B4DD851FF55E88945 D48B55D4
replace by 909090909090909090909090909090909090B8010000008945 D48B55D4

28309 call [ebp+var_4]
2830C test eax, eax
2830E jz short loc_10028F3B
107F7C 28310 6A00 push 0 |
28312 6A00 push 0 |
28314 8B4DE4 mov ecx, [ebp+var_1C] |
28317 51 push ecx |
28318 8B55F0 mov edx, [ebp+var_10] |-----> 18 NOP'S
2831B 52 push edx |
2831C 8B45F4 mov eax, [ebp+var_C] |
2831F 50 push eax |
28320 8B4DD8 mov ecx, [ebp+var_28] |
28323 51 push ecx |
28324 FF55E8 call [ebp+var_18]----------> MOV EAX,1
28327 8945D4 mov [ebp+var_2C], eax
2832A 8B55D4 mov edx, [ebp+var_2C]
2832D 52 push edx
2832E 6884A80310 push offset aSignedbycompaq ; "SignedByCompaq: Verify signature in ROM"...
28333 E8C82C0000 call sub_1002BC00
28338 834C08 add esp, 8

++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++

HOW TO SUPPRESS BIOS VERSION SIGNATURE CHECKING

Search string 6A006A008B4DE4518B55F0528B45F4508B4DD851FF55E88945 D48B45D4
replace by 909090909090909090909090909090909090B8010000008945 D48B45D4

2840E mov eax, [ebp+var_64]
28411 mov dword ptr [eax+14h], 0
108084 28418 6A00 push 0 |
2841A 6A00 push 0 |
2841C 8B4DE4 mov ecx, [ebp+var_1C] |
2841F 51 push ecx |
28420 8B55F0 mov edx, [ebp+var_10] | -----> 18 NOP'S
28423 52 push edx |
28424 8B45F4 mov eax, [ebp+var_C] |
28427 50 push eax |
28428 8B4DD8 mov ecx, [ebp+var_28] |
2842B 51 push ecx |
2842C FF55E8 call [ebp+var_18]----------> MOV EAX,1
2842F 8945D4 mov [ebp+var_2C], eax
28432 8B45D4 mov eax, [ebp+var_2C]
28435 50 push eax
28436 push offset aSignedbycomp_2 ; "SignedByCompaq: Verify signature in VER"...
2843B call sub_1002BC00
28440 834C08 add esp, 8

Дрессируем коров :)

Аватар пользователя Compiller

Или тут
forum.ru-board.com/topic.cgi?forum=55&bm=1&topic=9202&start=6332#2
Инструкция по модификации биоса в онлайн режиме для некоторых моделей ноутбуков HP (на других не тестировал).

Качаем всё необходимое (SLIC 2.1, HxDEN, Ваш Bios и SLIC Dump TooKit)

Запускаем HPQFlash.exe, Ждем 5-7 секунд и жмем далее.

Запускаем HxDEN жмем на Дополнительно>Открыть RAM… и открываем HPQFlash.exe, ищем там HPQOEMSLIC, смотрим HPQOEMSLIC-XXXWINDOWS, если у вас вместо XXX MPC то открываем Hp[HPQOEMSLIC-MPC-HPQ]2.1.BIN. (в моем случае Hp[HPQOEMSLIC-MPC-HPQ]2.1.BIN) а потом .

В файле Hp[HPQOEMSLIC-MPC-HPQ]2.1.BIN выделяем часть от 48 50 51 4F до 3E F1 B2 38 и копируем (см. на скриншотах) а в HPQFlash.exe ищем HPQOEMSLIC и выделяем от HPQOEMSLIC до 1C и вставляем с заменой скопированное с Hp[HPQOEMSLIC-MPC-HPQ]2.1.BIN и сохраняем (см. на скриншотах).

Нажимаем далее в запущенном HPQFlash.exe и обновляем БИОС.

Дрессируем коров :)

Аватар пользователя Compiller

Хотя обсуждение данной темы здесь чревато :(
Мне давненько на это намекали здесь :(
rom.by/comment/91551

Дрессируем коров :)

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей