При прошивке биоса error 284 fail to load driver pci access for windows

Куратор(ы):   CodeRush

Куратор(ы):  

CodeRush   

Автор Сообщение
 

Прилепленное (важное) сообщение

СообщениеДобавлено: 19.06.2012 17:38 

[профиль]

Куратор темы

Статус: Не в сети
Регистрация: 02.03.2008
Откуда: Cupertino, CA

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

Этот набор предназначен для десктопных плат, не используйте входящие в него bat-файлы на ноутбуках, пожалуйста.

FAQ по прошивке и редактору — во втором сообщении темы.
Ссылки на скачивание FD44Editor’а и FTK — в третьем сообщении темы.

Пишем новый FAQ вместе

Последний раз редактировалось CodeRush 07.09.2013 14:49, всего редактировалось 34 раз(а).

Реклама

Партнер
 
LS_29

Member

Статус: Не в сети
Регистрация: 20.04.2012
Откуда: Россия

CodeRush, спасибо, интуиция не обманула..

Да, 4 байта внвчале лишних не дорезал, вот дорезанный
Биос сия от Интеловской материнки

Код:

Intel Corp.
KLZ8711D.86A.0309.2013.0314.2222
03/14/2013

Добавлено спустя 15 минут 14 секунд:
CodeRush, человек хочет быть впереди планеты всей.. :)
jjxaker, у меня увы всё равно не шьется, видно утилиты 8 веосии не понимают 9..
А может из за того что содрана с Интела, а шьем на асус, она и ругается что не на родную Интел вливаем.. А вполне еще может быть, что МЕ9 заточена только под 8х чипы и хасвел..
Вобщем я подожду обычной утечки с 9-ми утилями.. :)

 
jjxaker

Member

Статус: Не в сети
Регистрация: 18.02.2008
Фото: 0

LS_29 вот такие вот пироги.

Код:

Communication Mode: MEI
Checking firmware parameters…

Warning: Do not exit the process or power off the machine before the firmware up
date process ends.
Sending the update image to FW for verification:  [ COMPLETE ]

FW Update:  [ 10% (Stage: 3 of 19) (-)]
Error 8741: FW Update Failed.

Error 8706: Firmware update not initiated due to integrity failure or invalid FW image

 
LS_29

Member

Статус: Не в сети
Регистрация: 20.04.2012
Откуда: Россия

jjxaker, скорее всего не совместимость, тк файлик не битый.. Подождем, не долго осталось.. :) Я пока через FITC в биос запихал, но не шил, не до того пока..
Удалил я с обменника все эти файлы от греха подальше. :)

Добавлено спустя 4 часа 39 минут 59 секунд:
Обновил автообновлялку OROMок для плат на 7х чипах с помощью MMTool.
Добавил обновление Intel VGA BIOS Device ID 162 версий 2143 или 2158 .
Переписал обновление Intel SATA OROM, теперь батник сам смотрит какой девайс заменить 282а или 2822 (хотя 282а это всё тот же 2822, почему асус так именует на некорорых мамках, незнаю), SataDriver меняется автоматом, если меняется OROM.
Добавил небольшой автомат по переименованию .сар или .rom в bios.bin, но если bios.bin есть то из сар и rom ничего не переименует, тупит ренаме..
Добавил запросы менять/не менять ромки в биосе, заодно отображение версии OROM до и после замены..
Все ромки в папочке OROM по своим папочкам, можете добавлять туда свои и подгонять в батнике..
Ну вобщем пока всё, проверил заиену на некоторых 77 платах, работает, на 6х серии сата и видео ромки те что в комплекте вполне могут не подойти, для них надо отдельно скачивать..
Ну вроде пока усё, пользуйтесь

http://rghost.ru/44912952

 
CodeRush

Куратор темы

Статус: Не в сети
Регистрация: 02.03.2008
Откуда: Cupertino, CA

Пропустил баг с непривильным выравниванием модулей, из за чего на некоторых платах перенос SLIC мог не работать. Поправил в 0.9.6.1, перекачайте.

 
asmfan

Member

Статус: Не в сети
Регистрация: 05.12.2006
Откуда: Из-за компутера

CodeRush писал(а):

Я иногда пользуюсь, когда до такой степени замучаю очередной БИОС, что у него ни дисков, ни USB не остается, а программатор лень доставать.

А есть готовые решения в виде образов, rescue disk для поднятия по PXE/RPL? Тоже тема интересная, полезная.

При Link Present все orom извлекаются по умолчанию из CSMCORE по ven:devid? (и зашиваются по умолчанию туда же? т.е. можно не париться с поиском по структуре названий модулей каждый раз на разных биосах? или CSMCORE тоже может в названиях меняться и тоже париться с поисками по размеру не надо при Link Present?), а efi разбросаны отдельно под именами, а это efi драйверы поставляют oem-ам, вроде oROMов (напр Realtek, jmicron,… ) или только пересадкой упакованных с последних Интеловых биосов, как самых актуальных, можно это поддерживать в кондиции? по efi orom кто что знает? с виду обычные PE с обрезанным MZ… чексума не как у dos orom mod 100h = 00? В общем отдельно их видел кто в виде драйверов или только в зашитом виде в биосах?)


_________________
enthusiast

 
LS_29

Member

Статус: Не в сети
Регистрация: 20.04.2012
Откуда: Россия

asmfan
Все не ffs ROM находятся в CSMCORE.
По сути его по всей структуре не надо искть, достаточно только включить доступ к Option ROM и делать всё что нужно..
Отображение не ffs OROM токо по коду VID:PID, поэтому важно знать кто бренд и что за устройтво, тк проверки что меняем НЕТ и по ошибке можно заменить одно на другое (например видео на рхе) и как итог получить кирпич..
На счет ffs файлов пока реально есть токо от Интел, от AsMedia, Marvell и других производителей не встречались пока, либо они сами не делают, либо не выкладывают на общий доступ, так что как вариант пока искать в биосах у других производителей материнок и проверять пойдет/не пойдет..

ALL
Ищутся тестеры с материнками на 61/67/68 и желательно с программатором на предмет обновления Intel VGA BIOS c Device ID 102 (ver 211x/2x/3x) на более новый DID 162 (ver 2143/2158) для написания автообновлялки для плат 6х серии..

 
drSHLEFF

Junior

Статус: Не в сети
Регистрация: 01.08.2010

Не работает FTK Win64 :bandhead:
Вот что у меня получается:

C:FTK>biosrefl
Creating BIOS region backup.

Intel (R) Flash Programming Tool. Version: 8.1.10.1286
Copyright (c) 2007 — 2012, Intel Corporation. All rights reserved.

PMXUtil: Error during PMX Call: idrvdll.dll!IDRVInit(): Failed VerAddVersion() c
all

Error 284: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.
Error occured during backup phase. Exiting.
Thank you for using FTK. Have a nice day.
Для продолжения нажмите любую клавишу . . .
C:FTK>

Не подскажите как это поправить? (сmd и fpt запускаются с правами администратора, я проверил)

И еще вопрос. Перестал прошиваться биос на SABERTOOTH X79. До прошлой версии биоса 3408 включительно, все работало великолепно под DOS, сейчас попробовал прошить новую версию 3501 и столкнулся с проблемой: 3 раза выдает ошибку красным шрифтом, что нет доступа к региону… Что могло произойти между двумя версиями биоса, что доступ к регионам пропал? И что делать (я не большой спец. поэтому пинцетом ноги у микросхемы замыкать не очень хочется :crazy: )?
(Короче, с версии 3408 FTK у меня работать отказывается и под DOS и под Windows) :facepalm:

Есть подозрение, что в версии 3408 были защищены регионы и я не зная об этом нюансе прошил его, вот как выглядит BIOSBCK.BIN в hex-редакторе (если конечно я смотрю там где нужно):
#77

 
CodeRush

Куратор темы

Статус: Не в сети
Регистрация: 02.03.2008
Откуда: Cupertino, CA

drSHLEFF, похоже на работу антивируса или системы виртуализации. Из DOS тоже не работает?
Регионы закрыть вполне могли, но смотришь ты не там. Сделай дамп дескриптора командой fpt -desc -d desc.bin, открой его и посмотри на последовательность из 12 байт, начинающуюся с адреса 0х60. И нам покажи.
Вообще, ничего удивительного в закрытии регионов нет, Intel давно настаивает на этом, да и использование FPT для прошивки очень не любят в ASUS, как я уже успел понять.
Короче, если так дело пойдет, надо вторую партию программаторов планировать.

Добавлено спустя 16 минут 5 секунд:
Посмотрел в заводском файле — доступ ко всем регионам открыт. Если FPT не работает, значит ASUS внедрил какую-то свою защиту дополнительно к отключенной на их платах защите Intel. Я уже получал сообщения о неработоспобности FTK на платах ASUS на Z77 с последними БИОСами, но их была всего пара и я не придал им большого значения.
Ну что ж, видимо, халява заканчивается и скоро кроме UBF больше будет нечем шить модифицированные БИОСы, либо придется две недели сидеть в отладчике, чтобы понять, как работает этот самый Security Verification.

 
drSHLEFF

Junior

Статус: Не в сети
Регистрация: 01.08.2010

CodeRush Отключил к черту avast!. FPT запустился из-под Windows -ты был прав.
Вот какой desc.bin он сделал:
#77
Похоже, регионы открыты… :-(
—————————————————————————————
Кстати, а вот как точно выглядит эта проблема:
Erasing and flashing BIOS region from modified bios.bin.

Intel (R) Flash Programming Tool. Version: 8.1.10.1286
Copyright (c) 2007 — 2012, Intel Corporation. All rights reserved.

Platform: Intel(R) Patsburg Chipset — Reserved DID 0x1D41
Reading HSFSTS register… Flash Descriptor: Valid

— Flash Devices Found —
W25Q64BV ID:0xEF4017 Size: 8192KB (65536Kb)

PDR Region does not exist.

Error 7: Hardware sequencing failed. Make sure that you have access to target flash area!
Trying to erase the same block (iteration: 2)

Error 7: Hardware sequencing failed. Make sure that you have access to target flash area!
Trying to erase the same block (iteration: 3)

Error 7: Hardware sequencing failed. Make sure that you have access to target flash area!
Failed to erase this block 3 times!!

Error occured during flash phase.
Please run restore.bat to restore BIOS region from biosbck.bin.
Thank you for using FTK. Have a nice day.
—————————————————————————————
Я конечно не специалист, но мне кажется, эта новая система Security Verification уже сейчас начинает доставлять проблемы и наверное стоит найти способ как ее вырубать в образе биоса перед прошивкой (я уверен, что в результате достаточно будет поменять десяток байт в нех-редакторе), чтобы при следующей прошивке уже проблем не было.

Так. А если это программная защита, может попробовать прошиться с помощью EZ Flash на предыдущую немодифицированную версию биоса (например 3305, в ней эту доп. защиту ASUS походу еще не воткнул, ведь 3408 прошился отлично). А потом со штатной 3305 используя FTK прошить модифицированный 3501. Как думаешь, прокатит или я так и останусь со старой немодифицированной версией навечно? :shock:
Короче, вопрос: это программная защита или в новой версии биос они задействовали какой-то аппаратный механизм, и теперь какую версию биоса не шей, это механизм не отключишь??

 
CodeRush

Куратор темы

Статус: Не в сети
Регистрация: 02.03.2008
Откуда: Cupertino, CA

drSHLEFF, больше похоже на умирающую микросхему БИОСа, если честно.
Защита по любому не аппаратная, поскольку раньше ее не было. Попробуй прошить старую версию при помощи USB BIOS Flashback. Или новую им попробуй прошить. Короче, он не так плох, этот UBF, как мы о нем думаем. :)

 
drSHLEFF

Junior

Статус: Не в сети
Регистрация: 01.08.2010

CodeRush Согласен на 100500% — UBF прошил новый модифицированный биос на ура, т.ч. дело скорее всего не в умирающей микросхеме биос. Но какая-то проблемка у FTK все ж таки есть, ибо я после прошивки попробовал его еще раз и FTK продолжает ругаться столь же матерно… :-P (Если нужны логи или дамп программы, чтобы понять что с ней не так и почему она ругается на X79 и Z77 с новыми биосами — готов посодействовать, до пятницы я совершенно свободен. Тока скажи, что и откуда слать)

И спасибо за моральную поддержку. :-)

 
LS_29

Member

Статус: Не в сети
Регистрация: 20.04.2012
Откуда: Россия

drSHLEFF, а сделай такой тест. Попрбуй с помощью ФТК сделать тоже самое на ноаой прошивке, т.е. перешить 3501 на 3501 под досей и виндой, будут те же ошибки?

Добавлено спустя 3 минуты 22 секунды:
Всех с 1 апреля! :D

 
drSHLEFF

Junior

Статус: Не в сети
Регистрация: 01.08.2010

LS_29 Под виндой не работает:
#77
Думаю, под DOS будет то же самое… интуиция.
Может это такое поздравление от FTK с 1 апреля, а завтра она заработает? ;)

 
LS_29

Member

Статус: Не в сети
Регистрация: 20.04.2012
Откуда: Россия

drSHLEFF, всё же под досей проверь..

Добавлено спустя 11 минут 48 секунд:
И заодно проверь с чистым не модифицированным биосом..

 
drSHLEFF

Junior

Статус: Не в сети
Регистрация: 01.08.2010

LS_29 писал(а):

drSHLEFF, всё же под досей проверь..

Добавлено спустя 11 минут 48 секунд:
И заодно проверь с чистым не модифицированным биосом..

Вот ты дотошный :-)
Скрины из доси (скрины сделаны SNARFом):
(НЕ модифицированный)
#77

(модифицированный)
#77

 
CodeRush

Куратор темы

Статус: Не в сети
Регистрация: 02.03.2008
Откуда: Cupertino, CA

drSHLEFF, открой батник biosreft.bat и убери -rewrite из вызова FPT. Затем попробуй запустить этот измененный батник в DOS. Та же картина?

 
drSHLEFF

Junior

Статус: Не в сети
Регистрация: 01.08.2010

CodeRush Убрал -rewrite. Картина та же.

 
LS_29

Member

Статус: Не в сети
Регистрация: 20.04.2012
Откуда: Россия

drSHLEFF писал(а):

Вот ты дотошный

Чем больше инфы тем лучше.. :)
И если не трудно то проверь еще такой вариант..
1) Откатись на 3305, с ней вроде как FTK еще в деле со всеми параметрами..
2) Сделай полную перепрошивку коммандой reflash.bat на не модифицированный 3501
3) И снова 3501 на 3501
Всё под досей..
Если 3 пункт после полной чистой перешивки останется тем же, то ужо явно асус что то химичит,,

Добавлено спустя 23 минуты 38 секунд:
CodeRush, а на каких Z77 парочке та жа проблема была, не помнишь?

 
LS_29

Member

Статус: Не в сети
Регистрация: 20.04.2012
Откуда: Россия

CodeRush, на данный момент для них доступны 1707..

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Лаборатория

Новости

Quote Originally Posted by hsm06
View Post

here is the result when I run flash.bat:

C:UsersDongkyuDownloadsfptw>fptw64 -save old.bin
FPTw64.exe [-H|?] [-VER] [-EXP] [-VERBOSE] [-Y] [-P] [-LIST] [-I]
[-F] [-ERASE] [-VERIFY] [-D] [-DESC] [-BIOS] [-ME] [-GBE]
[-PDR] [-SAVEMAC] [-SAVESXID] [-C] [-B] [-E] [-REWRITE]
[-ADDRESS|A] [-LENGTH|L] [-FOVS] [-CFGGEN] [-U] [-O] [-IN] [-N] [-ID]

[-V] [-LOCK] [-DUMPLOCK] [-PSKFILE] [-CLOSEMNF] [-GRESET]
[-PAGE] [-SPIBAR] [-R] [-VARS] [-COMMIT] [-COMPARE] [-HASHED]

-H|? Displays help screen.
-VER Displays version information.
-EXP Displays example usage of this tool.
-VERBOSE<file> Display the debug information of the tool.
-Y Do NOT prompt when a warning occurs.
-P<file> Specifies a flash part definition file to use.
-LIST List all SPI devices supported.
-I Displays information about the flash image.
-F<f>[NoVerify] Load binary file into flash. «NoVerify» skips verify.
-ERASE Erase the contents of flash.
-VERIFY<file> Compare binary file to flash.
-D<file> Dump flash contents to file or «STDOUT».
-DESC Load/verify/dump Descriptor region.
-BIOS Load/verify/dump BIOS region.
-ME Load/verify/dump ME region.
-GBE Load/verify/dump GbE region.
— Press any key to continue —
-PDR Load/verify/dump PDR region.
-SAVEMAC Saves the GbE MAC when GbE is being reflashed.
-SAVESXID Saves the GbE SSID and SVID when GbE is being reflashed.
-C Erase entire flash part.
-B Check to see if the flash part is erased.
-E Do NOT erase area before writing to flash.
-REWRITE Rewrite the SPI with file data even if flash is identical.
-ADDRESS|A<address> Flash address to load/verify/dump file.
-LENGTH|L<length> Number of bytes to load/verify/dump.
-FOVS Displays list of FOVs supported.
-CFGGEN Generates an FOV Input File.
-U Update Variable.
-O<file> Sets an output file name.
-IN<file> Input param file.
-N<name> Name of variable.
-ID<id> Id of the FOV to be updated.
-V<value> Value for variable.
-LOCK[PDR] Sets SPI flash region access to Intel recommended values
-DUMPLOCK Dumps the current lock settings to screen.
-PSKFILE<file> PSK key file name.
-CLOSEMNF[NO] [PDR] End of Manufacturing. Details on NO & PDR use -exp option
-GRESET[NO] Global reset drives GPIO30 low unless «NO» is provided.
-PAGE Pauses the screen when a page of text is reached.
-SPIBAR Display the SPI BAR.
— Press any key to continue —
-R<name> Read a variable.
-VARS Display supported variables.
-COMMIT Commit updates to FOVs requiring a FW reset.
-COMPARE<file> Compare variable with expected value filled in a text file
-HASHED Display a variable (from read command) in hashed format.

Intel (R) Flash Programming Tool. Version: 8.0.10.1464
Copyright (c) 2007 — 2012, Intel Corporation. All rights reserved.

Error 200: Invalid parameter value specified by user. Use -? option to see help.

C:UsersDongkyuDownloadsfptw>fptw64 -me -f ME8_1.5M_Production.BIN

Intel (R) Flash Programming Tool. Version: 8.0.10.1464
Copyright (c) 2007 — 2012, Intel Corporation. All rights reserved.

Error 284: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.

C:UsersDongkyuDownloadsfptw>pause
Press any key to continue . . .

Обновлено: 12.02.2023

Проблема, однако, в том, что dbschema вываливается с ошибкой
-284 — A subquery has returned not exactly one row.

Понятно, что в базе где-то глюк, но где ?
Решил пойти окольным путем — запустил Server Studio, сравнил обе базы, создал diff скрипт. Увы, облом — скрипт падает на новых NOT NULL полях. Решил, что быстрее будет разобраться с проблемой dbschema.
Поиск по гуглу ничего не дал, пришлось подумать самому.

Через полчаса dbschema заработала.

Похоже, но не совсем. Они сразу нашли дупликат — в systables. А мне надо было выяснить в какой из таблиц глюк.

Кстати, еще один вариант — попробовать использовать Кагелевскую утилиту myschema from the utils2_ak.

Понятно, что в базе где-то глюк, но где ?

Погадал на кофейной гуще, получается следующее:

1) методом дихотомии сужал область поиска, запуская поочередно

2) скорее всего, ошибка вывалилась на первой команде (впрочем, не суть. )
Затем поинтересовался у БД запросом (к sysprocedures или systables соотв.), где у нас неуникальность затесалась.
. или же смотрел, до какой SP/TBL успел дойти вывод в соотв. файлы и с прищуром смотрел на следующую по списку. (см. выше) :)

Выбегалло, если IDS 11 — включаем SQLTRACE?

1) Type. CHAR; NULLABLE
Indicator: NOT NULL
Precision: 0x0
Data. «idx_cspscrb_br_stat_xref» [24]

2) Type. CHAR; NULLABLE
Indicator: NOT NULL
Precision: 0x0
Data. «I» [1]

S->C (12) Time: 2010-04-30 13:50:11.31699
SQ_ERR
SQL error. -284
ISAM/RSAM error. 0
Offset in statement: 84
Error message. «» [0]
SQ_EOT

После чего осталось найти место, где SQ_ID = 4 был объявлен в последний раз (он переназначается) :

select * from informix.sysobjstate where owner = ‘informix’
and name = ‘idx_cspscrb_br_stat_xref’ and objtype = ‘I’

это скорее полевые заметки администратора или что-то в этом роде
возможно все эти ваши «головоломки» всего лишь навсего претендуют для занесения в faq
как просто база знаний

это скорее полевые заметки администратора или что-то в этом роде
возможно все эти ваши «головоломки» всего лишь навсего претендуют для занесения в faq
как просто база знаний

whatever. Лично я делюсь опытом решения практических задач. А вы, я смотрю, занимаетесь повышением образования среди меня путем википедизации ? Я, значит, слово «головоломка» неправильно употребляю ? Ну мне можно, я от корней оторвался.

Владислав Бирючёв

@all Всем кто интересуется. Базовый биос с рабочим сном(после сна на датчике северного моста 118 градусов, но он лжет) и гибернацией. Время загрузки Win 10 PRO на SSD 19 Секунд. Видео будет ниже. Биос без анлока, чистый, с датчиками при нормальной работе нет проблем.

Константин Малюгин

Alexey Bobrovnikov

Владислав Бирючёв

Константин Малюгин

Владислав Бирючёв

Alexey, в настройках биоса и виндовс есть функции энергосбережения, если вы хотите экономить, то можно эти функции включить, но в том случае максимальная частота будет при минимальной загрузке. Биос конца 19го года.

Владислав Бирючёв

Platon Voronco

Подскажите плиз, при прошивке x99-tf gaming вот такая ошибка, что делать ?

Intel (R) Flash Programming Tool. Version: 9.1.10.1000
Copyright (c) 2007 — 2014, Intel Corporation. All rights reserved.

Platform: Intel(R) C610 Series Chipset
Reading HSFSTS register. Flash Descriptor: Valid

—- Flash Devices Found —-
W25Q128BV ID:0xEF4018 Size: 16384KB (131072Kb)

PDR Region does not exist.
GBE Region does not exist.

— Reading Flash [0x1000000] 16384KB of 16384KB — 100% complete.
— Erasing Flash Block [0x003000] — 100% complete.
— Programming Flash [0x003000] 4KB of 4KB — 100% complete.
— Erasing Flash Block [0x007000] — 100% complete.
— Programming Flash [0x007000] 12KB of 12KB — 100% complete.
— Erasing Flash Block [0x044000] — 100% complete.
— Programming Flash [0x044000] 228KB of 228KB — 100% complete.

Как видите ошибся в материнке. Взял не z170. На этом перечеркнул возможность разгона 6600k процессора, а также частота озу 2133MHz вместо 2400 MHz.

Есть ли сейчас смысл менять материнку? Ну, скажем, хотя бы на эту Asus Prime Z270-P? Даст ли это прирост в играх?
Потому что у меня постоянно ощущение, что эта сборка работает не на всю мощь.

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

БП убил мат. плату?
Здравствуйте. Такая проблема: сначала один комп не включался по нажатию кнопки включения, но после.

Какую мат.плату выбрать
Какая версия данной материнской платы ASUS M5A97 нужна для стабильной работы процессора FX-6300 и.

Нужно заменить мат. плату
Имеется: мат. плата Asus M2N с сокетом AM2, 3 гигабйта памяти ddr2, видеокарта GeForce GT730.

Вывод сигнала на мат. плату
Мат плата H110M-S2V. После включения с кнопки сигнала на монитор нет. POS проходит нормально, все.

DeathBringer, Спасибо, пакет вроде тот.
Вот что пропую из под dos:
fpt -d dump.bin

Пишет найден флеш — девайс. А дальше красным:
Error 26: The host CPU does not have read access to the target flash area. To en
able read access for this operation you must modify the descriptor settings to g
ive host access to this region.

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Aplikman
Это защита срабатывает. Скорее всего из ME-региона.
Лечится замыканием ног (1 и 5) аудиочипа при включении либо прошивкой программатором.
Лечится замыканием ног (1 и 5) аудиочипа при включении либо прошивкой программатором.

Программатора нет. Аудиочип? Попробовать можно.

А почему у меня не получилось прошить через dos и afudos ? То видео, что я скидывал.
Там же залилась 0906, я точно видел версию, проходил пост, прошивка работала. Просто из-за Ez Flash я ничего не мог выбрать. Это что защита или где-то хранится информация, о том, что я понизил прошивку?

Aplikman
Afudos фактически работает только с BIOS-регионом, не трогая ME. Поэтому и шьет.
Я не знаю, может ли Ez Flash прошивать полную прошивку с понижением версии ME. Вероятно, что нет.

Добавлено через 1 минуту
Насчет аудиочипа: нужно закоротить 1 и 5 его ножки скрепкой или пинцетом в выключенном состоянии, включить, дождаться прохождения POST и убрать скрепку. Тогда до перезагрузки должна сняться защита.

DeathBringer, Спасибо, сделал как вы написали.

Чип очень маленький, ножки стоят близко к друг другу. Вдруг кто будет читать, на этой материнке чип перевернут. Поэтому 1 и 5 ножки это сверху справа, т.е. верхняя правая это первая ножка и дальше налево. Закоротил их щупами от тестера. В итоге удачно выполнил команду:
fpt -d dump.bin

Создал бекап текущего биоса.

Далее пытаюсь залить подготовленный 0906 bios (систему не перезагружал):
fpt -f bios_0906.rom

В итоге получаю ошибку
Error 368: Failed to disable write protection for the BIOS space

Так что побороть ее не смог.

ps. Также прочел, что можно понизить прошивку через afudos, при этом изменив системное время на пару дней вперед после выхода прошивки. Попробовал так сделать — не получилось. Ez flash требует указать CAP файл, 0609 не принимает, скормил ему обратно 3805

Вы извлекли его из CAP? Размер равен 16 777 216 байт?

  1. Берем флешку, размер не важен.
  2. Форматируем ее в FAT32
  3. Создаем структуру каталогов EFIBoot
  4. Скачиваем и распаковываем BOOTX64.EFI
  5. Кладем его в папку Boot
  6. Перегружаемся в BIOS, включаем Legacy и отключаем Secure Boot.
  7. Сохраняемся и загружаемся через флешку

Удостоверяемся, что прочитано значение 0x1. Если так, то выполняем:
setup_var 0x8A7 0x0

В результате значение должно стать 0x0. Это означает, что BIOS Lock отключен.
После этого снова делаете трюк со скрепкой и прошиваете 0906 при помощи FPT.
P.S. 0x8A7 — эта величина достоверно подходит только для текущей 3805 версии BIOS.

Вы извлекли его из CAP? Размер равен 16 777 216 байт?

Да. Скачал H170-PRO-ASUS-0906.cap , с помощью UEFITool.exe конвертировал в .rom , верно? Да, получилось ровно 16 777 216 байт

Попробую сделать флешку и прошить еще раз как вы написали

DeathBringer,
поставил везде Legacy. Удалил ключи — Security boot state стал Disabled
С флешки загрузился. Применил setup_var 0x8A7 0x0 , потом проверил setup_var 0x8A7, стоит 0x0.

Выключил комп, замкнул контакты. Создал бэкап биоса fpt -d bios.bin, успешно. Пытаюсь прошить fpt -f 0906.rom опять та же ошибка Error 368: Failed to disable write protection for the BIOS space

Добавлено через 13 минут
DeathBringer, вот видимо в чем дело. Слетает setup_var 0x8A7 0x0

Я перепроверил команду setup_var 0x8A7, значение 0x1. Опять ввел setup_var 0x8A7 0x0, снова setup_var 0x8A7 значение 0x0

Перезагружаю систему, ввожу setup_var 0x8A7 значение 0x1 . То есть после перезагрузки системы значение слетает на дефолтный 0х1. Что я не так делаю?

Меня всегда интересовало низкоуровневое программирование – общаться напрямую с оборудованием, жонглировать регистрами, детально разбираться как что устроено. Увы, современные операционные системы максимально изолируют железо от пользователя, и просто так в физическую память или регистры устройств что-то записать нельзя. Точнее я так думал, а на самом деле оказалось, что чуть ли не каждый производитель железа так делает!

В чём суть, капитан?

В архитектуре x86 есть понятие «колец защиты» («Ring») – режимов работы процессора. Чем ниже номер текущего режима, тем больше возможностей доступно исполняемому коду. Самым ограниченным «кольцом» является «Ring 3», самым привилегированным – «Ring -2» (режим SMM). Исторически сложилось, что все пользовательские программы работают в режиме «Ring 3», а ядро ОС – в «Ring 0»:

Режимы работы x86 процессора

Режимы работы x86 процессора

В «Ring 3» программам запрещены потенциально опасные действия, такие как доступ к I/O портам и физической памяти. По логике разработчиков, настолько низкоуровневый доступ обычным программам не нужен. Доступ к этим возможностям имеют только операционная система и её компоненты (службы и драйверы). И всё бы ничего, но однажды я наткнулся на программу RW Everything:

RW Everything действительно читает и пишет практически всё

RW Everything действительно читает и пишет практически всё

Эта программа была буквально напичкана именно теми функциями, которые обычно запрещаются программам «Ring 3» — полный доступ к физической памяти, I/O портам, конфигурационному пространству PCI (и многое другое). Естественно, мне стало интересно, как это работает. И выяснилось, что RW Everything устанавливает в систему прокси-драйвер:

Смотрим последний установленный драйвер через OSR Driver Loader

Смотрим последний установленный драйвер через OSR Driver Loader

Прокси-драйвера

В итоге получается обходной манёвр – всё, что программе запрещено делать, разработчик вынес в драйвер, программа устанавливает драйвер в систему и уже через него программа делает, что хочет! Более того – выяснилось, что RW Everything далеко не единственная программа, которая так делает. Таких программ не просто много, они буквально повсюду. У меня возникло ощущение, что каждый уважающий себя производитель железа имеет подобный драйвер:

Софт для обновления BIOS (Asrock, Gigabyte, HP, Dell, AMI, Intel, Insyde…)

Софт для разгона и конфигурации железа (AMD, Intel, ASUS, ASRock, Gigabyte)

Софт для просмотра сведений о железе (CPU-Z, GPU-Z, AIDA64)

Софт для обновления PCI устройств (Nvidia, Asmedia)

Во многих из них практически та же самая модель поведения – драйвер получает команды по типу «считай-ка вот этот физический адрес», а основная логика – в пользовательском софте. Ниже в табличке я собрал некоторые прокси-драйвера и их возможности:

Результаты краткого анализа пары десятков драйверов. Могут быть ошибки!

Результаты краткого анализа пары десятков драйверов. Могут быть ошибки!

Mem – чтение / запись физической памяти

PCI – чтение / запись PCI Configuration Space

I/O – чтение / запись портов I/O

Alloc – аллокация и освобождение физической памяти

Map – прямая трансляция физического адреса в вирутальный

MSR – чтение / запись x86 MSR (Model Specific Register)

Жёлтым обозначены возможности, которых явно нет, но их можно использовать через другие (чтение или маппинг памяти). Мой фаворит из этого списка – AsrDrv101 от ASRock. Он устроен наиболее просто и обладает просто огромным списком возможностей, включая даже функцию поиска шаблона по физической памяти (!!)

Неполный перечень возможностей AsrDrv101

Чтение / запись RAM

Чтение / запись IO

Чтение / запись PCI Configuration Space

Чтение / запись MSR (Model-Specific Register)

Чтение / запись CR (Control Register)

Чтение TSC (Time Stamp Counter)

Чтение PMC (Performance Monitoring Counter)

Alloc / Free физической памяти

Поиск по физической памяти

Самое нехорошее в такой ситуации — если подобный драйвер остаётся запущенным на ПК пользователя, для обращения к нему не нужно даже прав администратора! То есть любая программа с правами пользователя сможет читать и писать физическую память — хоть пароли красть, хоть ядро пропатчить. Именно на это уже ругались другие исследователи. Представьте, что висящая в фоне софтина, красиво моргающая светодиодиками на матплате, открывает доступ ко всей вашей системе. Или вирусы намеренно ставят подобный драйвер, чтобы закрепиться в системе. Впрочем, любой мощный инструмент можно в нехороших целях использовать.

Через Python в дебри

Конечно же я захотел сделать свой небольшой «тулкит» для различных исследований и экспериментов на базе такого драйвера. Причём на Python, мне уж очень нравится, как просто выглядит реализация сложных вещей на этом языке.

Первым делом нужно установить драйвер в систему и запустить его. Делаем «как положено» и сначала кладём драйвер (нужной разрядности!) в System32:

Раньше в похожих ситуациях я извращался с папкой %WINDIR%Sysnative, но почему-то на моей текущей системе такого алиаса не оказалось, хотя Python 32-битный. (по идее, на 64-битных системах обращения 32-битных программ к папке System32 перенаправляются в папку SysWOW64, и чтобы положить файлик именно в System32, нужно обращаться по имени Sysnative).

Затем регистрируем драйвер в системе и запускаем его:

А дальше запущенный драйвер создаёт виртуальный файл (кстати, та самая колонка «имя» в таблице с анализом дров), через запросы к которому и осуществляются дальнейшие действия:

И ещё одна полезная программа для ползания по системе, WinObj

И ещё одна полезная программа для ползания по системе, WinObj

Тоже ничего особенного, открываем файл и делаем ему IoCtl:

Вот здесь чутка подробнее. Я долго думал, как же обеспечить адекватную обработку ситуации, когда таких «скриптов» запущено несколько. Не останавливать драйвер при выходе нехорошо, в идеале нужно смотреть, не использует ли драйвер кто-то ещё и останавливать его только если наш скрипт «последний». Долгие упорные попытки получить количество открытых ссылок на виртуальный файл драйвера ни к чему не привели (я получал только количество ссылок в рамках своего процесса). Причём сама система точно умеет это делать — при остановке драйвера с открытым файлом, он остаётся висеть в «Pending Stop». Если у кого есть идеи — буду благодарен.

В конечном итоге я «подсмотрел», как это делают другие программы. Выяснилось, что большинство либо не заморачиваются, либо просто ищут запущенные процессы с тем же именем. Но одна из исследованных программ имела кардинально другой подход, который я себе и перенял. Вместо того, чтобы переживать по количеству ссылок на файл, просто на каждый запрос открываем и закрываем файл! А если файла нет, значит кто-то остановил драйвер и пытаемся его перезапустить:

А дальше просто реверсим драйвер и реализуем все нужные нам вызовы:

Легко и непринуждённо в пару команд читаем физическую память

Легко и непринуждённо в пару команд читаем физическую память

PCI Express Config Space

Немного отвлечёмся на один нюанс про PCIE Config Space. С этим адресным пространством не всё так просто — со времён шины PCI для доступа к её конфигурационному пространству используется метод с использованием I/O портов 0xCF8 / 0xCFC. Он применён и в нашем драйвере AsrDrv101:

Чтение и запись PCI Config Space

Чтение и запись PCI Config Space

Но через этот метод доступны только 0x100 байт конфигурационного пространства, в то время как в стандарте PCI Express размер Config Space у устройств может быть достигать 0x1000 байт! И полноценно вычитать их можно только обращением к PCI Extended Config Space, которая замаплена где-то в адресном пространстве, обычно чуть пониже BIOS:

Адресное пространство современного x86 компа, 0-4 ГБ

Адресное пространство современного x86 компа, 0-4 ГБ

На чипсетах Intel (ну, в их большинстве) указатель на эту область адресного пространства можно взять из конфига PCI устройства 0:0:0 по смещению 0x60, подробнее описано в даташитах:

У AMD я такого не нашёл (наверняка есть, плохо искал), но сам факт неуниверсальности пнул меня в сторону поиска другого решения. Погуглив стандарты, я обнаружил, что указатель на эту область передаётся системе через ACPI таблицу MCFG

А сами ACPI таблицы можно найти через запись RSDP, поискав её сигнатуру по адресам 0xE0000-0xFFFFF, а затем распарсив табличку RSDT. Отлично, здесь нам и пригодится функционал поиска по памяти. Получаем нечто такое:

На всякий случай оставляем вариант для чипсетов Intel

Всё, теперь осталось при необходимости заменить чтение PCI Express Config Space через драйвер на чтение через память. Теперь-то разгуляемся!

Читаем BIOS

В качестве примера применения нашего «тулкита», попробуем набросать скрипт чтения BIOS. Он должен быть «замаплен» где-то в конце 32-битного адресного пространства, потому что компьютер начинает его исполнение с адреса 0xFFFFFFF0. Обычно в ПК стоит флеш-память объёмом 4-16 МБ, поэтому будем «сканировать» адресное пространство с адреса 0xFF000000, как только найдём что-нибудь непустое, будем считать, что тут начался BIOS:

В результате получаем:

Вот так в 10 строчек мы считали BIOS

Вот так в 10 строчек мы считали BIOS

Но подождите-ка, получилось всего 6 мегабайт, а должно быть 4 или 8 что-то не сходится. А вот так, у чипсетов Intel в адресное пространство мапится не вся флешка BIOS, а только один её регион. И чтобы считать всё остальное, нужно уже использовать SPI интерфейс.

Не беда, лезем в даташит, выясняем, что SPI интерфейс висит на PCI Express:

И для его использования, нужно взаимодействовать с регистрами в BAR0 MMIO по алгоритму:

Задать адрес для чтения в BIOS_FADDR

Задать параметры команды в BIOS_HSFTS_CTL

Прочитать данные из BIOS_FDATA

Пилим новый скрипт для чтения через чипсет:

Исполняем и вуаля — в 20 строчек кода считаны все 8 МБ флешки BIOS! (нюанс — в зависимости от настроек, регион ME может быть недоступен для чтения).

Точно так же можно делать всё, что заблагорассудится — делать снифер USB пакетов, посылать произвольные ATA команды диску, повышать частоту процессора и переключать видеокарты. И это всё — с обычными правами администратора:

Немного помучившись, получаем ответ от SSD на команду идентификации

Немного помучившись, получаем ответ от SSD на команду идентификации

А если написать свой драйвер?

Некоторые из вас наверняка уже подумали — зачем так изворачиваться, реверсить чужие драйвера, если можно написать свой? И я о таком думал. Более того, есть Open-Source проект chipsec, в котором подобный драйвер уже разработан.

Зайдя на страницу с кодом драйвера, вы сразу наткнетесь на предупреждение:

В этом предупреждении как раз и описываются все опасности, о которых я рассказывал в начале статьи — инструмент мощный и опасный, следует использовать только в Windows режиме Test Mode, и ни в коем случае не подписывать. Да, без специальной подписи на обычной системе просто так запустить драйвер не получится. Поэтому в примере выше мы и использовали заранее подписанный драйвер от ASRock.

Если кто сильно захочет подписать собственный драйвер — понадобится регистрировать собственную компанию и платить Microsoft. Насколько я нагуглил, физическим лицам такое развлечение недоступно.

Точнее я так думал, до вот этой статьи, глаз зацепился за крайне интересный абзац:

У меня под рукой нет Windows DDK, так что я взял 64-битный vfd.sys , скомпилированный неким critical0, и попросил dartraiden подписать его «древне-китайским способом». Такой драйвер успешно загружается и работает, если vfdwin запущена с правами администратора

Драйвер из статьи действительно подписан, и действительно неким китайским ключом:

Как оказалось, сведения о подписи можно просто посмотреть в свойствах.. А я в HEX изучал

Как оказалось, сведения о подписи можно просто посмотреть в свойствах.. А я в HEX изучал

Немного поиска этого имени в гугле, и я натыкаюсь на вот эту ссылку, откуда узнаю, что:

есть давно утёкшие и отозванные ключи для подписи драйверов

если ими подписать драйвер — он прекрасно принимается системой

малварщики по всему миру используют это для создания вирусни

Основная загвоздка — заставить майкрософтский SignTool подписать драйвер истёкшим ключом, но для этого даже нашёлся проект на GitHub. Более того, я нашёл даже проект на GitHub для другой утилиты подписи драйверов от TrustAsia, с помощью которого можно подставить для подписи вообще любую дату.

Несколько минут мучений с гугл-переводчиком на телефоне, и мне удалось разобраться в этой утилите и подписать драйвер одним из утекших ключей (который довольно легко отыскался в китайском поисковике):

И в самом деле, китайская азбука

И в самом деле, китайская азбука

И точно так же, как и AsrDrv101, драйвер удалось без проблем запустить!

А вот и наш драйвер запустился

А вот и наш драйвер запустился

Из чего делаю вывод, что старая идея с написанием своего драйвера вполне себе годная. Как раз не хватает функции маппинга памяти. Но да ладно, оставлю как TODO.

Выводы?

Как видите, имея права администратора, можно делать с компьютером практически что угодно. Будьте внимательны — установка утилит от производителя вашего железа может обернуться дырой в системе. Ну а желающие поэкспериментировать со своим ПК — добро пожаловать на низкий уровень! Наработки выложил на GitHub. Осторожно, бездумное использование чревато BSODами.

В Windows есть фича «Изоляция ядра», которая включает I/O MMU, защищает от DMA атак и так далее (кстати об этом — в следующих сериях)

Так вот, при включении этой опции, некоторые драйвера (в том числе RW Everything и китайско-подписанный chipsec_hlpr) перестают запускаться:

Читайте также:

      

  • Как определить адрес шлюза а сети линукс
  •   

  • Как установить линукс роса
  •   

  • Dwg linux чем открыть
  •   

  • Очистка кэша шрифтов linux
  •   

  • Windows 10 подтвердить параметры при выходе

Hello guys,
My laptop Lenovo B40-80LS
Bios: Insyde H20
Bios Rev: 5.0
Link(Google Drive): Click
(I know how to flash)
If you need any more info PM me
I need ADVANCED menu to do BCLK overclock. 
Thanks.

(12-27-2018, 09:51 AM)Dudu2002 Wrote: [ -> ]

(12-27-2018, 03:22 AM)Henris Wrote: [ -> ]Hello guys,
My laptop Lenovo B40-80LS
Bios: Insyde H20
Bios Rev: 5.0
Link(Google Drive): Click
(I know how to flash)
If you need any more info PM me
I need ADVANCED menu to do BCLK overclock. 
Thanks.

Hi
need your bios dump

How do i dump?
I checked PM:
ran the program as admin and this output popped:
————————————————————
FPT ver.8.1.60.1561 — START—
————————————————————

Intel ® Flash Programming Tool. Version: 8.1.60.1561
Copyright © 2007 — 2014, Intel Corporation. All rights reserved.

Error 284: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.
8.1.60.1561 : Test on Reading — Error!

Error 284: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.

————————————————————
FPT ver.8.1.60.1561 — END —
————————————————————
————————————————————
FPT ver.11.6.20.1221 — START—
————————————————————

Error 366: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.
PMxdll.dll DebugMsg: Call to PMXDestroy()
11.6.20.1221 : Test on Reading — Error!

Error 366: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.
————————————————————
FPT ver.11.6.20.1221 — END —
————————————————————
————————————————————
FPT ver.11.0.15.1000 — START—
————————————————————

Intel ® Flash Programming Tool. Version: 11.0.15.1000
Copyright © 2007 — 2016, Intel Corporation. All rights reserved.

Error 366: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.
PMxdll.dll DebugMsg: Call to PMXDestroy()
11.0.15.1000 : Test on Reading — Error!
Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.
————————————————————
FPT ver.11.0.15.1000 — END —
————————————————————
————————————————————
FPT ver.10.0.30.1072 — START—
————————————————————

Intel ® Flash Programming Tool. Version: 10.0.30.1054
Copyright © 2007 — 2014, Intel Corporation. All rights reserved.

Error 284: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.
10.0.30.1072 : Test on Reading — Error!

Error 284: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.

————————————————————
FPT ver.10.0.30.1072 — END —
————————————————————
————————————————————
FPT ver.9.6.0.1038 — START—
————————————————————

Intel ® Flash Programming Tool. Version: 9.6.0.1038
Copyright © 2007 — 2013, Intel Corporation. All rights reserved.

Error 284: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.
9.6.0.1038 : Test on Reading — Error!

Error 284: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.

————————————————————
FPT ver.9.6.0.1038 — END —
————————————————————
————————————————————
FPT ver.9.5.40.1868 — START—
————————————————————

Intel ® Flash Programming Tool. Version: 9.5.40.1868
Copyright © 2007 — 2014, Intel Corporation. All rights reserved.

Error 284: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.
9.5.40.1868 : Test on Reading — Error!

Error 284: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.

————————————————————
FPT ver.9.5.40.1868 — END —
————————————————————
————————————————————
FPT ver.9.1.10.1000 — START—
————————————————————

Intel ® Flash Programming Tool. Version: 9.1.10.1000
Copyright © 2007 — 2014, Intel Corporation. All rights reserved.

Error 284: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.
9.1.10.1000 : Test on Reading — Error!

Error 284: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.

————————————————————
FPT ver.9.1.10.1000 — END —
————————————————————
————————————————————
FPT ver.2.0.5.3107 — START—
————————————————————

Intel ® Flash Programming Tool. Version: 2.0.5.3107
Copyright © 2007 — 2015, Intel Corporation. All rights reserved.

Error 285: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.
2.0.5.3107 : Test on Reading — Error!

Error 285: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.

————————————————————
FPT ver.2.0.5.3107 — END —
————————————————————
————————————————————
FPT ver.1.1.4.1148 — START—
————————————————————

Intel ® Flash Programming Tool. Version: 1.1.4.1148
Copyright © 2007 — 2015, Intel Corporation. All rights reserved.

Error 285: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.
1.1.4.1148 : Test on Reading — Error!

Error 285: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.

————————————————————
FPT ver.1.1.4.1148 — END —
————————————————————
————————————————————
FPT ver.3.0.11.1131 — START—
————————————————————

Intel ® Flash Programming Tool. Version: 3.0.11.1131
Copyright © 2007 — 2016, Intel Corporation. All rights reserved.

Error 366: Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.
PMxdll.dll DebugMsg: Call to PMXDestroy()
3.0.11.1131 : Test on Reading — Error!
Fail to load driver (PCI access for Windows).
Tool needs to run with an administrator priviledge account.
————————————————————
FPT ver.3.0.11.1131 — END —
————————————————————

Понравилась статья? Поделить с друзьями:
  • При подключении телефона к компьютеру ошибка код 43
  • При прохождении техосмотра указали неверный пробег как исправить
  • При подключении телефона к компьютеру ошибка драйвера
  • При подписи произошла ошибка не удалось подписать bin debug app publish
  • При подключении телефона к компьютеру usb устройство не опознано как исправить