Итак, суть проблемы на примере HP Compaq 8710p
Найти:
Способ прошивки модифицированного 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-й банк...
Может у кого-нибудь есть какие-нибудь соображения на этот счет?
Заранее спасибо!
Шить на программаторе и не создавать себе лишних трудностей. Возможно F0000-FFFFF защищены битом Write Protect...
Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P
А какие-нибудь софтверные решения есть?
Пробовал UniflashRE ver. 1.47re build 08 от 01.08.2007, но этот BIOS не поддерживается...
А подробнее про бит Write protect... Где его искать и как изменить?
Write Protect - читать даташит на флэшку. Думать. Можно попытаться дизассемблировать ПО прошивальщика, чтобы понять в каком месте происходит затык.
Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P
Стандартные HPQFlash.exe и rompaq.exe при работе с оригинальным файлом BIOS тоже не перезаписывают последний 15-й банк...
Может быть "затык" в EEPROM или CMOS.
Здесь HP DMI Tools, некоторые из них работают...
Вот, что могут HPBI103.exe и HPBQ189.exe:
HPBQ189.exe
И что могут означать строки внутри .bin файла BIOS...
За DMI утилиты - спасибо. Скачал, положил к себе в архив.
...C:\MRC103\OUT32\MINITDLL.pdb...
точно не знаю. Возможно, что недовычищенные остатки от отладочной информации.
Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P
Еще один замечательный факт:
Блоки E0000h-EFFFFh и F0000h-FFFFFh абсолютно одинаковые, оба начинаются
и включают в себя SLIC 2.0 маркер...
Т.е. блок E0000h-EFFFFh перезаписывается, включая SLIC маркер, а F0000h-FFFFFh - защищен...
Нужен способ обхода этой "защиты от записи"!
Похоже, что изменения необходимо внести в модифицированный (или оригинальный) файл BIOS перед прошивкой...
А не пробовали как написано тут
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
Дрессируем коров
Или тут
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 и обновляем БИОС.
Дрессируем коров
Хотя обсуждение данной темы здесь чревато
Мне давненько на это намекали здесь
rom.by/comment/91551
Дрессируем коров
Отправить комментарий