Cum să deblochezi bios-ul pe un laptop. Modificarea BIOS-ului. CmosPwd de CGSecurity

20.04.17 3.6K

Cea mai comună metodă pe care o cunosc cei mai mulți dintre noi pentru a reseta sau șterge parola BIOS este oprirea fizică a computerului prin deconectarea tuturor cablurilor și scoaterea bateriei de pe placa de bază pentru câteva minute.

Altă cale cum se elimină parola bios— comutați jumperul CMOS de pe placa de bază, dacă este prezent. Aceste metode funcționează deoarece majoritatea plăcilor de bază pentru PC și o serie de plăci de bază pentru laptop folosesc o baterie pentru a menține setările BIOS/CMOS. Dacă opriți alimentarea, setările BIOS/CMOS și parola vor fi șterse.

Dacă dintr-un motiv oarecare nu puteți reseta parola de securitate BIOS a computerului prin îndepărtarea bateriei sau comutarea jumperului CMOS, iată câteva opțiuni de încercat.

Parole implicite backdoor

Înainte de a utiliza instrumente care încearcă să resetați sau să facă modificări la BIOS, merită să vedeți dacă vreuna dintre ușile din spate cunoscute sau parolele implicite funcționează. Faceți clic pe linkul de mai jos pentru a vedea o listă cu toate parolele cunoscute pentru ușile din spate. Înainte de a elimina parola BIOS de pe laptop, rețineți că parolele sunt sensibile la majuscule și minuscule.

Parole standard pentru backdoor BIOS

Dacă poți porni Windows

CMOS De-Animator este un instrument mai avansat decât majoritatea instrumentelor. Poate reseta parola BIOS din Windows. Cea mai recentă versiune a CMOS De-Animator 2 este compatibilă cu sistemele de operare pe 32 de biți și 64 de biți.


Tot ce trebuie să faceți este să rulați instrumentul ca administrator ( faceți clic dreapta și selectați elementul de meniu " Rulat ca administrator» ) și apăsați butonul " Continua", apoi reporniți computerul. Când pornește computerul, veți vedea o eroare de sumă de control CMOS și veți putea accesa BIOS-ul fără o parolă. Modul în care funcționează CMOS De-Animator este că invalidează suma de control Sistem de memorie CMOS. Aceasta resetează toate setările la implicite și șterge toate parolele BIOS stocate.
CMOS De-Animator include funcționalități de backup și restaurare. Aceasta oferă o garanție suplimentară de siguranță. Dacă ceva nu merge bine la resetarea parolelor, datele sunt salvate într-un fișier cu extensia .dea. Autorii programului avertizează asupra posibilelor probleme atunci când îl utilizați pe laptopuri. Programul determină uneori software-ul antivirus să provoace fals pozitive și avertismente pe site-uri precum Virus Total.

Dacă nu puteți porni de pe hard disk sau CD

Cum să eliminați parola BIOS pe laptopul Samsung? Oprirea alimentării și scoaterea bateriei de pe placa de bază a computerelor desktop pentru câteva minute ar trebui să elimine parola BIOS. Dar este mult mai puțin probabil să funcționeze pe un laptop. Pentru securitate sporită, parolele BIOS pentru laptop sunt de obicei stocate pe un cip EEPROM separat, care este independent de bateria BIOS.

Dacă introduceți parola BIOS greșită pe laptop de mai multe ori, pe ecran va apărea un mesaj care indică faptul că laptopul este blocat. Vei vedea ceva de genul „ Sistem dezactivat" sau " Verificarea parolei a eșuat. Sistem oprit” și câteva numere. Dacă acest mesaj apare la intrarea în BIOS, puteți pur și simplu să opriți alimentarea și apoi să încercați să intrați din nou. Acordați atenție numărului pentru că este o informație prețioasă. Este necesar să se genereze o parolă pentru BIOS pentru ușă din spate.


Tot ce trebuie să faceți este să notați numărul care apare și apoi să mergeți la pagina web BIOS Master Password Generator. Acest site este conceput pentru a prelua posibile parole pe baza numărului introdus. Doar introduceți-l și faceți clic pe butonul. Apoi verificați rezultatele și marcați toate parolele care sunt apropiate de modelul dvs. de laptop.
Înainte de a elimina parola BIOS de pe computer, încercați codurile primite pentru un BIOS blocat pentru a verifica dacă funcționează. În funcție de modelul de laptop, poate fi necesar să apăsați Enter sau Ctrl + Enter după introducerea codului. Codurile folosite se bazează pe munca unui specialist " Dogbert„, care a făcut multe cercetări și a creat o serie de utilitare mici, precum și scripturi Python pentru deblocarea diverselor modele de laptop.

Dacă codurile pe care le-ați primit pe acest site nu v-au ajutat, vizitați blogul Dogbert, unde puteți găsi informații mai detaliate despre marca laptopului dvs. și descărcați un utilitar separat pentru acesta. Pentru a utiliza unul dintre programe, descărcați utilitarul și rulați-l, apoi introduceți numărul și apăsați Enter. Veți primi o parolă principală cu care puteți încerca să vă deblocați computerul.


Trebuie să rulați o parolă principală pe un computer care poate porni pe Windows și care are instalat .NET. Dacă nu știi ce instrument să folosești, poți încerca totul până îl găsești pe cel care se potrivește laptopului tău.

Dacă puteți porni de pe CD/USB

Când Windows nu pornește corect și nu există nicio modalitate de a vă conecta sau USB este deja setat la o prioritate mai mare. În acest caz, trebuie să introduceți un CD sau o unitate flash și dispozitivul va porni automat de pe acesta. De asemenea, pornirea de pe o unitate CD sau USB poate avea o prioritate mai mică decât hard disk-urile. În acest caz, va trebui să deconectați temporar hard disk-ul.

Cum altfel pot elimina parola prin BIOS? Dacă aveți acces la Windows, o altă soluție care vă permite să porniți de pe CD/USB este un instrument numit Plop Boot Manager. Face posibilă pornirea de pe aceste medii, chiar dacă BIOS-ul nu acceptă această caracteristică.

Iată câteva instrumente pe care le puteți utiliza atunci când porniți de pe un CD sau o unitate flash USB.

PC CMOS Cleaner

Proiectat pentru a recupera, șterge, decripta și afișa parola de utilizator sau super utilizator stocată în BIOS, indiferent de marca dispozitivului. BIOS-urile acceptate includ Award, American Megatrends (AMI), Compaq, Phoenix, Samsung, IBM, Compaq, DTK, Thinkpad, Sony, Toshiba. Deci, există șanse mari ca BIOS-ul dvs. să fie inclus în această listă. PC CMOS Cleaner este un CD Linux bootabil, așa că nu trebuie să vă faceți griji cu privire la compatibilitatea sistemului de operare.

Când este lansat, programul va încerca mai întâi să decripteze și să afișeze o listă de parole posibile. Dacă acest lucru nu reușește, puteți elimina parola folosind două opțiuni, a doua dintre acestea va reseta complet setările BIOS la implicite - va trebui să le reconfigurați mai târziu.

Descărcați PC CMOS Cleaner

CmosPwd de CGSecurity

Acesta este unul dintre cele mai moderne și populare instrumente de decriptare CMOS, deși a fost lansat cu destul de mult timp în urmă - în 2007. CmosPwd decriptează parola stocată în CMOS și o afișează. Sunt acceptate următoarele BIOS:
  • BIOS ACER/IBM;
  • BIOS AMI;
  • AMI WinBIOS 2.5;
  • Premiul 4,5x/4,6x/6,0 ;
  • Compaq (1992);
  • Compaq (versiune nouă);
  • IBM (PS/2, Activa, Thinkpad);
  • Packard Bell;
  • Phoenix 1.00.09.AC0 (1994), a486 1.03, 1.04, 1.10 A03, 4.05 rev 1.02.943, 4.06 rev 1.13.1107;
  • Phoenix 4 versiunea 6 (Utilizator);
  • Gateway Solo – Phoenix 4.0 versiunea 6;
  • Toshiba;
  • Zenith AMI.

Cu CmosPwd, puteți elimina și parola BIOS de pe laptopul Lenovo, puteți face backup, restaura, șterge sau chiar șterge complet CMOS. La încărcare, selectați 9. Următorul- 2. Instrumente BIOS / CMOS- 2. BIOS Cracker 5.0 (cmospwd). Există și o versiune care poate fi rulată de pe Windows.

!Bios de la Alianța a unsprezecea

Vă permite să efectuați backup și restaurare BIOS. Există chiar și o opțiune Blaster care poate șterge anumite părți ale BIOS-ului cu așteptarea de a elimina parola - o opțiune puternică și potențial nesigură, deoarece poate corupa BIOS-ul. !Bios poate sparge parolele utilizate în unele versiuni comune de BIOS, inclusiv diferite versiuni ale IBM, American Megatrends (AMI), Award și, de asemenea, Phoenix. Acesta este un instrument vechi, care datează de la sfârșitul anilor 90, așa că este puțin probabil să funcționeze eficient pe computerele moderne.

Bios este, de asemenea, inclus în pachetul software Hirens Boot CD. Selectați un articol 9. Următorul- 2. Instrumente BIOS / CMOS- 4. BIOS 3.20 (ibios). De asemenea, puteți descărca un separat instrument!Bios Windows.

De fapt, metoda originală, echipamentele și microcodurile pot fi găsite (direct instrucțiunile AMI) și, în majoritatea cazurilor, utilizarea acestei metode nu pune probleme și nu are capcane, dar în practica mea am întâlnit în mod regulat următoarea problemă:

Acestea. era o lipsă banală de spațiu liber în interiorul imaginii. Când modificați BIOS-ul pentru un anumit procesor, puteți ignora acest lucru, deoarece Puteți încărca oricând un singur microcod special pentru procesorul dvs. sau puteți șterge un microcod vechi pentru a elibera spațiu, dar atunci când modificați cu un flux, trebuie să căutați o altă soluție, un compromis.

Ca un compromis, am ales următoarea soluție - luăm cele mai recente versiuni de microcoduri pentru toate procesoarele din generația CORE în toate modelele (Celeron E, Pentium E, Core 2 Duo, Core 2 Quad, Xeon *3xxx/*5xxx) și inlocuieste cu ele tot ce era inainte . Setul de microcoduri s-a dovedit a fi după cum urmează:

Volumul acestui set este de doar 76 de kiloocteți. Acest fișier a fost obținut prin combinarea acestor fișiere:

cpu00010676_plat00000001_ver0000060f_date20100929.bin
cpu00010676_plat00000004_ver0000060f_date20100929.bin
cpu00010676_plat00000010_ver0000060f_date20100929.bin
cpu00010676_plat00000040_ver0000060f_date20100929.bin
cpu00010677_plat00000010_ver0000070a_date20100929.bin
cpu0001067a_plat00000011_ver00000a0b_date20100928.bin
cpu0001067a_plat00000044_ver00000a0b_date20100928.bin
cpu000006f2_plat00000001_ver0000005d_date20101002.bin
cpu000006f6_plat00000001_ver000000d0_date20100930.bin
cpu000006f6_plat00000004_ver000000d2_date20101001.bin
cpu000006f7_plat00000010_ver0000006a_date20101002.bin
cpu000006f7_plat00000040_ver0000006b_date20101002.bin
cpu000006fb_plat00000001_ver000000ba_date20101003.bin
cpu000006fb_plat00000004_ver000000bc_date20101003.bin
cpu000006fb_plat00000010_ver000000ba_date20101003.bin
cpu000006fb_plat00000040_ver000000bc_date20101003.bin
cpu000006fd_plat00000001_ver000000a4_date20101002.bin

Procedura de modificare în sine s-a schimbat puțin și a devenit, dacă nu mai ușoară, atunci mai rapidă:

Pasul 1— deschideți imaginea BIOS în programul MMTool:



Pasul 2— pentru a verifica, mergeți la ultima filă (CPU PATCH) și uitați-vă la numărul de microcoduri. Iată, de exemplu, 31 dintre ele:

Pasul 3- accesați fila Înlocuire și căutați elementul „P6 Micro Code” de pe el:

Pasul 4— după ce ați selectat elementul „P6 Micro Code”, apăsați butonul Ikshtsyu, selectați fișierul ncpucode.bin descris mai sus și înlocuiți-l cu butonul Înlocuire:





Pasul 5— pentru a verifica, mergeți la ultima filă (CPU PATCH) și uitați-vă la numărul de microcoduri. După înlocuirea microcodurilor, au rămas 17, cea mai recentă versiune:

Nu există nicio diferență fundamentală cu procedura de modificare descrisă pe delidded.com. În cele mai multe cazuri, ieșirea nu este cu siguranță aceeași, dar procesorul primește microcodul necesar. Dintre aspectele subiective pozitive, aș dori doar să atrag atenția asupra faptului că microcodurile pentru toate procesoarele actuale sunt garantate a fi actualizate, fie ele „civile” sau „server”, și practic nu există riscul de a primi un mesaj despre lipsa de spatiu. Deși, în practica mea, chiar și pentru un astfel de set de microcoduri nu a fost suficient spațiu de câteva ori, acesta a fost cu BIOS-ul pentru plăcile ECS P4M900T-M și ECS P4M900T-M2, care sunt în general compatibile cu Xeon E5450.

Prin tradiție, public un link către arhivă cu instrumente - (zip, 234KB). Arhiva conține un fișier executabil MMTOL.exe(versiunea 3.22 BKMOD), fișier cu microcoduri pentru toate procesoarele 45/65nm din generația core/xeon ncpucode.bin, precum și două fișiere 45nm.binȘi 65nm.bin cu microcoduri doar pentru procesoare de 45 nm și doar pentru 65 nm. Utilizarea acestor fișiere poate fi utilă în cazurile în care este necesar să se elibereze spațiu suplimentar în BIOS, de exemplu, pentru un firmware nou al unui controler, rețea, disc etc.

!NB: Nici fișierul ncpucode.bin și nici fișierele 45nm.bin/65nm.bin nu acceptă procesoare Pentium 4, Celeron (fără sufixe de litere), Pentium D, Celeron D și Xeon W (de exemplu Xeon 5080). Acestea sunt procesoare de generație NetBrust.

În acest articol voi încerca să vorbesc despre cele mai populare și utile modificări UEFI BIOS, condițiile de utilizare a acestora și metodele de căutare. În plus, utilitarul UEFITool descris în prima parte nu a prins încă, așa că vor fi menționate și alte programe folosite pentru modificarea BIOS-urilor UEFI de la diverși producători.
Dacă subiectul este interesant pentru tine, bine ai venit la cat.

Introducere și încă o declinare a răspunderii

Nu vreau să-mi repet tirada despre necesitatea unui programator SPI și despre faptul că faci toate modificările pe riscul și riscul tău, așa că dacă nu ai citit-o, citește-o și revino.
De acum înainte, cred că nu aveți probleme cu recuperarea după firmware-ul nereușit și sunteți, de asemenea, familiarizat cu UEFITool, așa că nu mă voi opri asupra întrebărilor tehnice precum „Cum pot extrage un fișier din imagine” și „cum pot introduceți-l înapoi mai târziu”.

Instrumente necesare

Pentru a modifica cu succes imaginea UEFI BIOS, este posibil să aveți nevoie de următoarele instrumente:

  1. Editor hexadecimal la alegere.
  2. Editor de imagini UEFI, pentru care voi folosi, din motive evidente, UEFITool, dar puteți folosi și PhoenixTool (universal și bine depanat, dar nu fără limitări) sau MMTool (funcționează mai mult sau mai puțin tolerabil doar cu imagini Aptio AMI).
  3. Dacă nu se găsește un model consistent pentru modificarea necesară, poate fi necesar un asamblator și dezasamblator cu suport x86-64. Un asamblator online este suficient, dar este nevoie de un dezasamblator normal, altfel căutarea unui punct de modificare poate dura mult timp.
    Din păcate, versiunea gratuită a IDA Pro nu acceptă analizarea fișierelor PE pe 64 de biți, așa că pentru Windows recomand să folosiți utilitarul dumpbin inclus în suita de compilare Microsoft, iar pentru MacOS X fie objdump, fie o versiune de probă a Hopper Disassembler.
  4. Dacă modificarea poate fi efectuată de un utilitar de la producătorul platformei UEFI, lăsați-o să se facă - este mai fiabilă decât manuală. Din păcate, „cercul acestor revoluționari este îngust și sunt teribil de departe de oameni”, așa că cel mai adesea nu există o utilitate adecvată de la producător.

Modificări

Patch PM CPU, eliminarea blocării MSR 0xE2

Ce: Ocoliți setarea bitului LOCK (0x0F) în registrul MSR_PMG_CST_CONFIG_CONTROL (0xE2) după trecerea POST
Pentru ce: registrul deschis 0xE2 este necesar pentru funcționarea subsistemului CPU Power Management în MacOS X; atunci când este închis, apare o panică a nucleului. Dacă nu intenționați să îl instalați sau dacă BIOS-ul UEFI are setarea „Unlock C-State MSR”, nu aveți nevoie de această modificare.
Unde să caut: în driverele UEFI legate de CPU PM. În BIOS-urile vechi, codul de instalare a blocării se află în modulul CpuPei, în cele noi - în modulul PowerManagement (poate fi numit și PowerManagement2.efi sau PowerMgmtDxe.efi).
Metoda de modificare: În CpuPei, codul care trebuie modificat arată cam așa:

81 FB D0 06 02 00 cmp ebx,206D0h 75 0C jne FFFE426E 0D 00 80 00 18 sau eax,18008000h ; Bit 15 (LOCK) este setat aici EB 05 jmp FFFE426E 0D 00 80 00 00 sau eax,8000h ; Sau aici 6A FF push 0FFFFFFFFh 6A F8 push 0FFFFFFF8h 6A 00 push 0 50 push eax 56 push esi E8 DC 0F 00 00 call FFFE5257 ; Și în interiorul acestei funcții se află wrmsr

Este suficient să înlocuiți 00800018 cu 00000018 și 00800000 cu 00000000 în acest loc pentru a ocoli instalarea lacătului.

În PowerManagement, codul arată diferit, cel mai adesea astfel:

80 FB 01 cmp bl,1 ; Dacă BL == 1 75 08 jne 0000000180002700 ; Sari peste următoarele două comenzi 0F BA E8 0F bts eax,0Fh ; Set bit 15 (LOCK) 89 44 24 30 mov dword ptr ,eax ; Salvați rezultatul într-o variabilă din stivă 48 8B 54 24 30 mov rdx,qword ptr ; Încărcați valoarea din această variabilă în RDX B9 E2 00 00 00 mov ecx,0E2h ; Iar numărul MSR din ECX E8 este 79 0C 00 00 apel 0000000180003388; Și apelați funcția cu wrmsr înăuntru

Puteți înlocui JNE cu JMP, BTS cu BTR sau pur și simplu înlocuiți întregul cod de instalare a lacătului. Cel mai simplu mod este să o faci pe prima, adică. schimbați 75 08 în EB 08.

Dacă un astfel de cod nu se găsește în UEFI BIOS, căutați valoarea 0xE2 în driverele legate de CPU Power Management și verificați tot codul pentru a vedea dacă al 15-lea bit este setat. În cele mai recente versiuni de BIOS pentru unele plăci AMI desktop moderne, acestea nu mai blochează acest registru, așa că nu mai puteți găsi un astfel de cod în ele - luați în considerare că producătorul a făcut acest mod pentru dvs.

Deblocare AES NI

Ce: Ocoliți setarea bitului LOCK (0x01) la registrul MSR 0x13C
Pentru ce: Activați accelerarea hardware AES pe sistemele cu restricții de export
Unde să caut: în driverele UEFI legate de CPU PM, cel mai adesea în PowerManagement
Metoda de modificare: nu este foarte diferit de patch-ul PM (și a fost deja descris pe Habré), așa că nu mă voi opri asupra lui în detaliu.

Eliminarea listei albe

Ce: ocoliți lista albă de echipamente compatibile pe care unii producători de laptop-uri le folosesc în BIOS-urile UEFI.
Pentru ce: Ideea producătorului este clară - puteți vinde și echipamente compatibile rebrandate proprietarilor de echipamente „incompatibile” la prețuri exorbitante. Dacă vrei să decizi singur ce echipament este compatibil cu laptopul tău, această modificare este pentru tine.
Unde să caut: în driverele UEFI legate de dispozitivele PCIe. Pentru HP acest driver se numește de obicei BiosLockPcie, pentru Lenovo este LenovoWmaPolicyDxe.efi, dar poate fi numit diferit.
Metoda de modificare: deoarece Pe măsură ce producătorii de laptopuri încearcă să schimbe mai des codul de verificare al listei albe, este destul de dificil să descrii o metodă permanentă.
Strategia generală de căutare este:

  1. Introduceți un card incompatibil în laptop, așteptați mesajul despre imposibilitatea încărcării și amintiți-l.
  2. Găsiți acest mesaj într-unul dintre fișierele FFS.
  3. Găsiți codul care face referire la acest mesaj.
  4. Examinați acest cod și încercați să-l schimbați astfel încât verificarea să reușească întotdeauna. Există două modalități de a face acest lucru: fie corectați tranziția, fie adăugați ID-ul de furnizor și ID-ul dispozitivului pe lista albă.

Detaliile modificării folosind HP ca exemplu sunt bine descrise de un prieten cunoscut în cercurile modderului Donovan6000, și voi descrie opțiunea de modificare folosind Lenovo X121E ca exemplu.
Verificarea este efectuată de driverul LenovoWmaPolicyDxe.efi, trebuie să mergeți aici:

44 38 0D F0 0F 00 00 cmp byte ptr ,r9b 75 18 jne 0000000000000C1A E8 35 FD FF FF apel 0000000000000093C 48 85 85 C0 C0 test rav 8Cr 8C 8C 8Xra 7 FF FF FF js 0000000000000B8A C6 05 D6 0F 00 00 01 mov byte ptr ,1 49 8B C1 mov rax,r9 E9 68 FF FF FF jmp 0000000000000B8A

Toate tranzițiile la acest cod trebuie să fie corelate la cele necondiționate, iar în codul însuși este necesar să „patchezi” prima și a doua linie, după care verificarea se va încheia întotdeauna cu succes.

Eliminarea blocării BIOS-ului

Ce: eliminarea protecției împotriva intermitentului imaginilor UEFI modificate folosind programatorul încorporat.
Pentru ce: cu un număr mare de experimente cu UEFI, scoaterea programatorului de fiecare dată devine rapid plictisitoare, iar firmware-ul cu programatorul încorporat este mai rapid (datorită muncii folosind protocolul QuadSPI în loc de SPI obișnuit în cazul unui programator extern ).
Unde să caut: în driverele de chipset, cel mai adesea în PchInitDxe (o altă opțiune de mod este în BiosWriteProtect)
Metoda de modificare: Opțiunea de modificare a PchInitDxe este complet descrisă în engleză, așa că voi da doar ideea. Este necesar să găsiți intrarea bitului BIOS Lock Enable (BLE) în registrul BIOS_CNTL al chipset-ului și să o împiedicați. Acest lucru se poate face în mai multe locuri, de exemplu aici:

48 8B 4C 24 40 mov rcx,qword ptr ; Încărcați adresa structurii PchPlatformData în RCX 48 8B 41 50 mov rax,qword ptr ; Și în RAX - adresa structurii copil LockdownConfig F6 00 10 test byte ptr ,10h ; Verificați dacă al cincilea bit este setat (BiosLock) 74 25 je 0000000180001452 ; Dacă nu este instalat, treceți peste toate codurile de sub 8A 50 01 mov dl,byte ptr B9 B2 00 00 00 mov ecx,0B2h ; E8 A2 5A 00 00 apel 0000000180006EDC 4C 8D 87 DC 00 00 00 lea r8, ; RDI conține adresa de bază a registrelor LPC ale chipset-ului, iar 0xDC este offset-ul registrului BIOS_CNTL 33 C9 xor ecx,ecx 4C 8B CD mov r9,rbp 33 D2 xor edx,edx 4C 89 44 24 20 mov qword ptr , r8 E8 AA 76 00 00 apel 0000000180008AFC ; Instalați blocarea

Puteți schimba JE în JMP, dar uneori în loc de un salt scurt dați peste unul lung, pentru care trebuie să calculați suplimentar offset-ul, așa că este mai bine să schimbați testul cu orice comandă care setează steag-ul ZF, de exemplu la xor rax, rax (48 31 C0) și posibila diferență a comenzilor de dimensiune corectată prin adăugarea de NOP.
Dacă codul necesar nu se găsește în PchInitDxe, puteți modifica driverul BiosWriteProtect în așa fel încât să ocoliți înregistrarea handler-ului SMI aflat în acesta, care setează bitul BLE atunci când încercați să-l resetați, după care trebuie doar pentru a reseta acest bit pentru a debloca firmware-ul. Metoda descrisă mai sus funcționează bine pentru mine, așa că nu am încercat încă această opțiune și, prin urmare, nu o voi descrie în detaliu.

Deblocarea setărilor avansate

Ce: Deblochează accesul la setările ascunse ale BIOS Setup.
Pentru ce: printre aceste setări s-ar putea să găsiți ceva interesant, dar de obicei sunt ascunse dintr-un motiv.
Unde să caut: Pentru Phoenix și Insyde, meniul este stocat în fișiere HII cu nume precum SetupMain, SetupAdvanced etc. Pentru AMI, meniul este stocat în fișierul de configurare, iar setările sunt stocate în AMITSE. Mai mult, AMI oferă programul său AMIBCP producătorilor de produse pentru utilizatorii finali, versiuni ale cărora sunt adesea divulgate publicului. Lucrul cu el este destul de simplu, așa că nu văd niciun rost să îl descriu - descărcați-l și încercați.
Metoda de modificare: pentru AMI - deschideți imaginea în AMIBCP, modificați setările implicite, salvați, flash, resetați, gata. Pentru Insyde și Phoenix, lucrurile sunt puțin mai complicate. Dacă accesul de scriere la NVRAM nu este interzis, metoda prietenului meu Falseclock, descrisă în acest articol de-al său, funcționează bine, dar dacă nu există acces, va trebui fie să analizați manual formatul HII Form File, fie să îl furnizați fie către script-ul descris în articolul menționat mai sus sau la utilitarul universal IFR Extractor, care trebuie utilizat împotriva fișierelor HII extrase din imaginea UEFI. După aceasta, schimbați doar condițiile SUPRESS_IF din fișierul Formular HII extras, astfel încât acestea să nu fie executate niciodată și toate meniurile vor deveni disponibile.

CPU Microcode, OptionROM, drivere și imagini actualizate

Ce: actualizarea microcodurilor CPU, firmware-ului diferitelor dispozitive periferice, drivere EFI și imagini afișate în timpul pornirii și în configurarea BIOS.
Pentru ce: uneori o actualizare ajută la remedierea erorilor din sistem, uneori adaugă suport pentru o caracteristică importantă (TRIM pentru SSD-uri în RAID0, de exemplu), dar cel mai adesea actualizarea se face pentru că în sfârșit a fost lansată o nouă versiune.
Unde să caut: depinde foarte mult de producător, driverele EFI pot fi găsite pur și simplu după nume (SataDriver, de exemplu), microcodul poate fi găsit după ID-ul modelului procesorului pentru care este destinat, OROM-urile - după VID/DID-ul dispozitivelor pe care le au servi, imaginile în format JPEG pot fi găsite după linia „JFIF”, în GIF - prin „GIF8”, etc.
Metoda de modificare: la fel de simplu ca mooing - găsiți o versiune nouă în domeniul public, găsiți unde este cea veche în imagine și înlocuiți una cu cealaltă. Pentru tovarășul AMI LS_29 un set pentru actualizarea automată a fost scris pe baza utilitarului MMTool, îl puteți descărca din subiectul nostru de pe peste. Nu am auzit încă de soluții automate pentru Phoenix sau Insyde.
Înlocuirea imaginilor se poate face fie cu utilități precum AMI ChangeLogo, fie manual, dar cel mai adesea o imagine care nu este pregătită într-un mod special provoacă o înghețare, deoarece Decodoarele cu format de imagine sunt foarte limitate. În general, este mai bine să ștergeți datele EXIF ​​în avans.

Concluzie

În acest articol, am descris doar acele moduri pe care le-am realizat cu succes cu propriile mele mâini. Dacă aveți comentarii sau completări, voi primi cu plăcere comentariile dvs.
Încă o dată, cer cu umilință administrației Habr și personal OZN-ul să creeze un hub UEFI, pentru că acesta este un subiect foarte larg și literalmente nu există unde să pui articole despre el.
Vă mulțumesc pentru atenție, vă doresc modificări reușite.

CHRIS KASPERSKI

Modificarea BIOS-ului

Modificarea BIOS-ului este plină de posibilități aproape nelimitate: overclockare extremă a sistemului, deblocarea funcțiilor ascunse, corectarea erorilor dezvoltatorului, decorațiuni după gustul dvs. - acesta este cel mai înalt nivel de hacking, care necesită cunoștințe de hardware și capacitatea de a ține un dezasamblator în mâini. . Aceasta este o pădure deasă în care este foarte ușor să te pierzi, dar o să vă arăt calea cea mai scurtă.

Dacă procesorul este inima computerului, atunci BIOS-ul este sufletul său. Calitatea firmware-ului determină totul! Din păcate, firmware-ul de înaltă calitate este destul de rar în sălbăticie. Dezvoltatorii fac greșeli grave, blochează multe funcții utile și, în general, se comportă prost față de consumator. Modelele vechi de plăci de bază, lansate înainte de 2000, adesea nu au deloc cel mai recent firmware și nu mai funcționează cu echipamente noi (de exemplu, hard disk-uri de mare capacitate), dar ar putea...

Multe plăci de bază de înaltă calitate împiedică în mod deliberat overclockarea, au o gamă slabă de valori acceptabile sau au setări prea grosiere pentru a le schimba. Desigur, multe depind de partea „hardware”, dar fără firmware-ul corect - nicăieri! Puteți găsi o mulțime de firmware îmbunătățit online, actualizat de entuziaști, dar toate sunt concentrate pe un model de placă de bază foarte specific (de obicei deja depășit), și este foarte dificil să obțineți firmware pentru echipamentul dvs.; în plus, nu există garanții. că sub pretextul „îmbunătățit” „Nu ți se va da un BIOS îngropat de viu sau, și mai rău, o versiune troianizată în mod deliberat.

Ce zici de modding? Nu este tentant să faci computerul să clipească luminile tastaturii în timpul pornirii sau să afișezi un logo colorat pe ecran?! Într-un cuvânt, modificarea BIOS-ului nu este doar posibilă, ci și necesară. Vom vorbi în principal despre Award BIOS. În AMI totul este foarte diferit... Cu toate acestea, cândva vom ajunge la ele. Apropo, Award a fost cumpărat de Phoenix și există în prezent doar ca marcă. Aceasta înseamnă că cele mai recente versiuni de Phoenix-BIOS sunt proiectate exact în același mod ca Award, deoarece sunt dezvoltate de aceeași companie, totuși, această declarație nu se aplică firmware-ului mai vechi. Cu toate acestea, există editori gata pregătiți și pentru ei, dar să nu ne concentrăm pe detalii, ci să trecem direct la subiect.

De ce avem nevoie

Pentru experimente vom avea nevoie de o placă de bază cu Award-BIOS la bord. Este foarte ușor să identifici cipul BIOS - de obicei are o etichetă holografică lipită pe el, care trebuie smulsă pentru a expune marcajul. Marcajul reprezintă o succesiune de numere precum „28F1000PPC-12C4”.

Cum să-l descifrem? Mergem la http://www.datasheetarchive.com, completăm linia de interogare și obținem un fișier pdf cu o descriere detaliată a cipului (așa-numita fișă de date). Acum trebuie să găsim un cip de memorie FLASH identic sau compatibil, pe care îl vom experimenta de fapt. Poate fi achiziționat de la un magazin specializat de radio sau scos de pe o placă de bază spartă. Nu există o lipsă mare de aceste cipuri, deoarece plăcile de bază folosesc cipuri seriale produse de furnizori independenți.

Pentru a înlocui „la cald” BIOS-ul (adică, scoateți un microcircuit de pe o placă de lucru), meșterii ruși leagă cu atenție fire în jurul microcircuitului și apoi trageți-l cu grijă în sus (puteți, desigur, să-l scoateți doar cu o șurubelniță, dar este ușor să scurtcircuitați ceva), dar După epidemia de strănut, străinii au venit cu dispozitive speciale - extractor de cip (chip remover) și BIOS salvator (BIOS salvator). De fapt, acestea sunt același dispozitiv, doar mărcile sunt diferite. Le puteți cumpăra din magazinele de radio sau le puteți comanda de pe Internet (vezi Fig. 1-6).


Figura 2. Kitul BIOS Savior pentru îndepărtarea în siguranță a cipul BIOS de pe placa de bază și „pătuț”

pentru backup BIOS cu comutator de pe panoul din spate

Avem nevoie și de documentație pentru chipsetul plăcii de bază. Companiile Intel și AMD postează gratuit tot ce aveți nevoie pe site-ul lor web. Alți producători (VIA, SiS) păstrează documentația secretă și o oferă doar pentru bani plus un acord de nedivulgare. În special, pe discurile trimise de AMD, există o mulțime de documentație interesantă cu ștampila „confidențială”, răsfoind prin care, simți un sentiment incitant de implicare în secret.

Un set de utilități pentru intermiterea BIOS-ului poate fi găsit pe site-ul web al dezvoltatorului BIOS-ului specific sau al producătorului plăcii de bază. Unii producători (de exemplu, ASUS) fac un număr mare de modificări la BIOS, în urma cărora utilitățile „native” de la Award nu mai funcționează cu ele și trebuie să utilizați instrumentele care au venit cu placa de bază. De obicei conține:

  • awdflsh.exe- „arzător”;
  • modbin– editor BIOS simplu;
  • cbrom– scanează conținutul BIOS-ului și adaugă noi module la firmware.

Toate aceste utilități pot fi găsite pe site http://www.rom.by. Există, de asemenea, un minunat „patcher” BIOS - BP.exe (prescurtarea de la „BIOS Patcher”), care corectează erorile din firmware-ul cunoscut și deblochează multe funcții blocate. Instrumentul nostru principal va fi Editorul BIOS interactiv BIOS Award, care poate fi descărcat gratuit de pe.

Cum vom proceda

Modificarea BIOS-ului este un efort foarte riscant. Cea mai mică greșeală și sistemul refuză să pornească, afișând un ecran negru plictisitor. Cele mai multe plăci de bază moderne sunt echipate cu protecție împotriva firmware-ului eșuat, dar de obicei funcționează numai atunci când BIOS-ul este efectiv deteriorat (de exemplu, suma de control nu se potrivește).

Pentru aceste scopuri avem nevoie de un al doilea BIOS! Pornim placa de bază, citim conținutul firmware-ului cu utilitarul corespunzător (sau descarcăm versiunea actualizată de pe site-ul producătorului), o modificăm după bunul plac, apoi, fără a opri computerul, scoatem cu grijă cipul original, lăsându-l deoparte. , și introduceți cipul cu care vom experimenta . Tot ce rămâne este să rulați AWDFLASH.EXE și să introduceți firmware-ul modificat în BIOS. Acum, dacă ceva se întâmplă brusc, putem oricând să întoarcem cipul original la locul său, să corectăm eroarea din firmware-ul experimental și să repetam din nou întreaga procedură. Cu alte cuvinte, vom experimenta doar pe cipul „nostru”, lăsând intact BIOS-ul nativ.

Cât de sigură este această procedură? De fapt, pericolele ne așteaptă la fiecare pas. Microcircuitul vă poate aluneca din mâini și cădea pe placă; cea mai mică eroare din firmware poate deteriora echipamentul (de exemplu, comutați stabilizatorul la o tensiune mai mare, selectați o frecvență prea mare de ceas etc.). Înainte de a câștiga experiență de luptă, cel mai bine este să experimentați cu plăci de bază vechi care oricum sunt casate (de exemplu, Pentium-155).

Primele experimente

Lansăm editorul Award BIOS (apropo, rulează doar din GUI, iar sub FAR pur și simplu „zboară”), în meniul Fișier selectăm fișierul cu firmware-ul pe care îl vom modifica (mai întâi trebuie să îl descărcați de pe site-ul web al producătorului sau rulați AWDFLASH.EXE cu comutatorul /sy pentru a salva firmware-ul curent într-un fișier). În coloana din stânga, selectați elementul „System BIOS” și vedeți ce lucruri bune pot fi schimbate aici. Și aici se pot schimba multe! De exemplu, numele BIOS afișat în timpul pornirii (în cazul meu este: Award Modular BIOS v6.00PGN), data lansării și numele chipset-ului (03/29/2001-i815-W83627F-6A69RI3DC-00) și alte șiruri de identificare de acest tip. Să scriem „asamblat la o fabrică militar-industrială din SUA”, ca să ne putem bate joc de prietenii noștri mai târziu (vezi Fig. 7).

În același mod, puteți înlocui toate inscripțiile din „Configurarea BIOS” (se află în fila „Opțiuni BIOS”) și puteți edita valorile implicite (aceleași care sunt încărcate folosind „încărcarea configurației implicite BIOS” comanda) după gustul tău. Elementele marcate cu „Dezactivat” sunt de cel mai mare interes. Acestea sunt optiunile blocate de producator! Pur și simplu comutând butonul radio în starea „Activ”, le vom debloca! Desigur, nu avem nicio garanție că sistemul va funcționa după aceasta. Cel mai adesea, modurile și funcțiile neterminate sau instabile sunt blocate. Mai rar - producătorul pur și simplu nu dorește ca plăcile de bază entry-level să concureze cu modelele scumpe, așa că le încetinește. O placă de bază instabilă poate distruge conținutul hard disk-ului în timp ce Windows se încarcă, așa că este inacceptabil să experimentezi pe unitatea hard disk! Utilizați un hard disk de rezervă care nu are nimic valoros pe el. Rulați mai multe programe de testare și lăsați-le să ruleze câteva zile. Dacă în acest timp nu au loc reporniri sau blocări, puteți trece la hard disk-ul principal, pentru orice eventualitate, după ce ați făcut în prealabil o copie de rezervă a conținutului acestuia (vezi Fig. 8).

Doriți să schimbați sigla care apare în colțul de nord-est al ecranului? Nu este deloc greu de făcut. BIOS-urile vechi stocau imaginea în secțiunea „LOGO” într-un format non-standard, numit în mod convențional format logo-ul. Erau o mulțime de restricții asociate cu acesta și era necesar un convertor special, uneori inclus cu placa de bază, dar mai des trebuia să-l scrii singur.

Acum, secțiunea „LOGO” este goală în majoritatea cazurilor, iar imaginea este stocată în secțiunea „Model EPA” în formatul standard BMP. Nu există restricții privind dimensiunea și adâncimea culorii, cu toate acestea, nu toate BIOS-urile acceptă imagini extrem de mari și colorate. Ce se întâmplă dacă alimentați BIOS-ului cu o imagine pe care nu o poate procesa? E bine! Sistemul fie va refuza să-l afișeze pe ecran, fie îl va afișa cu distorsiuni. Pentru a evita problemele, se recomandă să începeți de la o imagine existentă: extrageți logo-ul original într-un fișier (în Editorul Award BIOS comanda „Export ca Windows BMP” este responsabilă pentru aceasta), încărcați-l în Paint și editați-l după pofta inimii fără a modifica adâncimea sau dimensiunea culorii. Un exemplu de astfel de lucrări este dat mai jos.

Dacă doriți, puteți coase o siglă pe ecran complet în BIOS care este afișată în timpul pornirii. Acest lucru se realizează prin utilitatea cu același nume de la Award, care este inclusă în pachetul standard al multor plăci de bază ASUS. Cu toate acestea, în unele BIOS-uri, întârzierea în afișarea siglei pe ecran complet este atât de mică încât un număr de monitoare CRT pur și simplu nu au timp să se încălzească în acest timp! Dar de ce să nu treci la un monitor LCD pentru asta? Desigur nu! Doar găsiți valoarea întârzierii în setările BIOS și creșteți-o! Și pentru aceasta vom avea din nou nevoie de editorul Award BIOS (vezi Fig. 9).

Desen 9 . Schimbarea logo-ului implicit afișat pe ecran la încărcare

Iată un alt truc. Prin rularea utilitarului BP.EXE deja menționat cu comutatorul /c, putem seta manual numele procesorului care este afișat la pornire și frecvența acestuia. Frecvența reală a ceasului nu va mai fi afișată. De ce să nu scrieți „AMD Pentium-V 666 GHz beta” și să nu vă lăudați prietenilor?

Da, există o mulțime de lucruri cu care poți veni! În mâini capabile, BP.EXE și editorul Award BIOS fac adevărate minuni! Oricum ar fi, după toată hărțuirea, firmware-ul ar trebui să fie încărcat în BIOS. Puteți citi despre cum să faceți acest lucru în documentația pentru placa de bază (vezi Fig. 10).

Poza 1 0 . Arderea BIOS-ului cu un utilitar specializat de la ASUS

Configurarea registrelor PCI

Chipsetul este configurat folosind registre speciale accesibile prin magistrala PCI. Când sistemul pornește, BIOS-ul configurează procesorul, controlerul magistralei de sistem, controlerul RAM și toate celelalte periferice în conformitate cu setările selectate în „Configurare BIOS”. Cu toate acestea, aproape niciun BIOS nu oferă acces la toate setările chipset-ului sau limitează în mod deliberat gama de valori disponibile. Ce să faci, ce să faci?

Lansați editorul Award BIOS, accesați System BIOS, găsiți fila „Chipset Registers” și deschideți documentația pentru chipset. Ar trebui să existe o secțiune „Registre de configurare PCI” sau ceva de genul ăsta undeva. Pentru fiecare dintre registre, se vor indica dispozitivul la care este „conectat”, numărul funcției și numărul registrului în sine, numit și offset. Toate registrele sunt pe 8 biți, dar mai multe registre consecutive pot fi combinate în cuvinte sau chiar cuvinte duble.

O comparație a capacităților de configurare ale chipset-ului cu BIOS Setup arată că unele setări lipsesc. Nici în funcțiile blocate (despre care am vorbit deja mai sus) nu sunt acolo! În special, AMD-ul meu preferat 761 acceptă o gamă mult mai largă de sincronizari decât cele indicate în setarea BIOS. Luați, de exemplu, valoarea tPR (time to precharge), care determină timpul de închidere a paginii DRAM, timp în care datele sunt returnate în banca de memorie și reîncărcate. În mod implicit, BIOS-ul îl setează la 3 cicluri de ceas și nu vă permite să îl schimbați. Pentru a reduce tPR la 1 ciclu de ceas, este necesar să modificați biții 8 și 7 din registrul Dev 0:F0:0x54, atribuindu-le valoarea 2 („10” în notație binară). Nu atingeți restul bucăților! Și cum se face? Este necesar să aplicați o mască, care în acest caz va arăta astfel: „XXXX XXX1 1XXX XXXX”. După cum puteți vedea, biții 8 și 7 sunt setați la unu, restul sunt marcați cu un „X”, indicând BIOS-ului că acest bit trebuie lăsat neschimbat (vezi Fig. 11).

Poza 1 1 . O pagină din documentația chipset-ului care descrie registrele de configurare

Intrarea „Dev0:F0:0x54” înseamnă: Dispozitiv 0:Funcție 0:Înregistrare 0x54. De fapt, există două dintre aceste registre. Register 0x54 stochează jumătatea inferioară a cuvântului, iar 0x55 stochează jumătatea superioară a cuvântului. Prin urmare, 80h („10.00.00.00”) trebuie introdus în 0x54, iar 01h în 0x55. În consecință, în primul caz masca va fi egală cu 80h („1X.XX.XX.XX”), iar în al doilea 01h.

Ne întoarcem la Editorul BIOS Award, găsim numărul de registru 0x54 și, făcând clic dreapta, selectăm elementul „modificare”. În fereastra care apare, lăsăm primele trei câmpuri (Register, PCI, PCI) neschimbate (acesta este numărul de registru, dispozitiv și funcție), dar următoarele două câmpuri „Resister” și „Value” vor trebui tratate separat. Nu putem să luăm și să scriem pur și simplu valoarea 0x80, deoarece acest registru stochează deja niște parametri care modifică alte câmpuri. Trebuie să setăm doar biții „noștri” (în acest caz este bitul 7) și să efectuăm o operație logică „SAU” pe restul peste mască. Registrul 55h este configurat într-un mod similar (vezi Fig. 12).

Figura 1 2 . Overclockarea sistemului prin editarea registrelor de configurare

După ce am încărcat firmware-ul actualizat în BIOS și am instalat module de memorie de înaltă calitate, suntem încântați să observăm că performanța sistemului a crescut considerabil, mai ales în timpul operațiunilor haotice de acces la memorie, când paginile DRAM sunt închise aproape la fiecare pas.

Într-un mod similar, puteți edita alte registre care nu sunt în BIOS Setup, dar capacitățile noastre vor fi destul de limitate.

Concluzie

Pe lângă editorul Award BIOS, există și alte programe pentru editarea BIOS-ului sau extinderea capacităților acestuia. Sunt enumerate în casetă.

Este pur și simplu imposibil să acoperiți toate detaliile acestui proces fascinant în întregime în cadrul unui singur articol, așa că nu îl luați ca pe un ghid complet. Mai degrabă, este o invitație într-o lume minunată ascunsă în adâncurile unui mic microcircuit. Și să spună cineva că editarea BIOS-ului este mai mult educațională decât practică (nu aș risca să instalez un BIOS „deblocat” pe un server responsabil)! Dar administratorul ar trebui să aibă măcar un fel de divertisment, mai ales că nimeni nu interzice experimentarea cu plăci de bază scoase din funcțiune!

Aplicație

Cum se arde BIOS-ul

AMI BIOS au o interfață specială care vă permite să lucrați cu un cip de memorie FLASH (citire sau ardere), accesibil prin întreruperi INT 15h și INT 16h (detalii în Lista de întreruperi a lui Ralph Brown). Award BIOS nu are această caracteristică și sunt programate prin porturi I/O.

Din punct de vedere structural, cipul FLASH este conectat la podul de sud al chipset-ului, așa că o descriere a interfeței pentru interacțiunea cu BIOS-ul ar trebui găsită în documentația pentru podul de sud. Alternativ, puteți utiliza un programator gata făcut, care vine cu tot software-ul necesar.

Desen 13 . Cipul de memorie FLASH conectat la podul de sud

DIY DUAL-BIOS

Fiecare radioamator care știe să țină un fier de lipit în mâini poate modifica placa de bază instalând pe ea două cipuri de memorie FLASH simultan. Apoi va fi posibil să comutați între ele fără un extractor de cipuri greu de accesat și, în plus, foarte scump. După cum se poate observa din fig. 14, nu este nimic complicat în DUAL-BIOS.

  • UEFI
    • Tutorial

    În acest articol voi încerca să vorbesc despre cele mai populare și utile modificări UEFI BIOS, condițiile de utilizare a acestora și metodele de căutare. În plus, lumina nu a ajuns încă în punctul de vedere al utilitarului UEFITool descris în utilitar, așa că vor fi menționate și alte programe folosite pentru modificarea BIOS-urilor UEFI de la diverși producători.
    Dacă subiectul este interesant pentru tine, bine ai venit la cat.

    În PowerManagement, codul arată diferit, cel mai adesea astfel:

    80 FB 01 cmp bl,1 ; Dacă BL == 1 75 08 jne 0000000180002700 ; Sari peste următoarele două comenzi 0F BA E8 0F bts eax,0Fh ; Set bit 15 (LOCK) 89 44 24 30 mov dword ptr ,eax ; Salvați rezultatul într-o variabilă din stivă 48 8B 54 24 30 mov rdx,qword ptr ; Încărcați valoarea din această variabilă în RDX B9 E2 00 00 00 mov ecx,0E2h ; Iar numărul MSR din ECX E8 este 79 0C 00 00 apel 0000000180003388; Și apelați funcția cu wrmsr înăuntru
    Puteți înlocui JNE cu JMP, BTS cu BTR sau pur și simplu înlocuiți întregul cod de instalare a lacătului. Cel mai simplu mod este să o faci pe prima, adică. schimbați 75 08 în EB 08.

    Dacă un astfel de cod nu se găsește în UEFI BIOS, căutați valoarea 0xE2 în driverele legate de CPU Power Management și verificați tot codul pentru a vedea dacă al 15-lea bit este setat. În cele mai recente versiuni de BIOS pentru unele plăci AMI desktop moderne, acestea nu mai blochează acest registru, așa că nu mai puteți găsi un astfel de cod în ele - luați în considerare că producătorul a făcut acest mod pentru dvs.

    Deblocare AES NI

    Ce: Ocoliți setarea bitului LOCK (0x02) la registrul MSR 0x13C
    Pentru ce: Activați accelerarea hardware AES pe sistemele cu restricții de export
    Unde să caut: în driverele UEFI legate de CPU PM, cel mai adesea în PowerManagement
    Metoda de modificare: nu este mult diferit de patch-ul PM (și mai îngust), așa că nu mă voi opri asupra lui în detaliu.

    Eliminarea listei albe

    Ce: ocoliți lista albă de echipamente compatibile pe care unii producători de laptop-uri le folosesc în BIOS-urile UEFI.
    Pentru ce: Ideea producătorului este clară - puteți vinde și echipamente compatibile rebrandate proprietarilor de echipamente „incompatibile” la prețuri exorbitante. Dacă vrei să decizi singur ce echipament este compatibil cu laptopul tău, această modificare este pentru tine.
    Unde să caut: în driverele UEFI legate de dispozitivele PCIe. Pentru HP acest driver se numește de obicei BiosLockPcie, pentru Lenovo este LenovoWmaPolicyDxe.efi, dar poate fi numit diferit.
    Metoda de modificare: deoarece Pe măsură ce producătorii de laptopuri încearcă să schimbe mai des codul de verificare al listei albe, este destul de dificil să descrii o metodă permanentă.
    Strategia generală de căutare este:
    1. Introduceți un card incompatibil în laptop, așteptați mesajul despre imposibilitatea încărcării și amintiți-l.
    2. Găsiți acest mesaj într-unul dintre fișierele FFS.
    3. Găsiți codul care face referire la acest mesaj.
    4. Examinați acest cod și încercați să-l schimbați astfel încât verificarea să reușească întotdeauna. Există două modalități de a face acest lucru: fie corectați tranziția, fie adăugați ID-ul de furnizor și ID-ul dispozitivului pe lista albă.
    Detaliile modificării folosind HP ca exemplu sunt bine descrise de un prieten cunoscut în cercurile modderului Donovan6000, și voi descrie opțiunea de modificare folosind Lenovo X121E ca exemplu.
    Verificarea este efectuată de driverul LenovoWmaPolicyDxe.efi, trebuie să mergeți aici:
    44 38 0D F0 0F 00 00 cmp byte ptr ,r9b 75 18 jne 0000000000000C1A E8 35 FD FF FF apel 0000000000000093C 48 85 85 C0 C0 test rav 8Cr 8C 8C 8Xra 7 FF FF FF js 0000000000000B8A C6 05 D6 0F 00 00 01 mov byte ptr ,1 49 8B C1 mov rax,r9 E9 68 FF FF FF jmp 0000000000000B8A
    Toate tranzițiile la acest cod trebuie să fie corelate la cele necondiționate, iar în codul însuși este necesar să „patchezi” prima și a doua linie, după care verificarea se va încheia întotdeauna cu succes.

    Eliminarea blocării BIOS-ului

    Ce: eliminarea protecției împotriva intermitentului imaginilor UEFI modificate folosind programatorul încorporat.
    Pentru ce: cu un număr mare de experimente cu UEFI, scoaterea programatorului de fiecare dată devine rapid plictisitoare, iar firmware-ul cu programatorul încorporat este mai rapid (datorită muncii folosind protocolul QuadSPI în loc de SPI obișnuit în cazul unui programator extern ).
    Unde să caut: în driverele de chipset, cel mai adesea în PchInitDxe (o altă opțiune de mod este în BiosWriteProtect)
    Metoda de modificare: Opțiunea de modificare a PchInitDxe este complet descrisă în engleză, așa că voi da doar ideea. Este necesar să găsiți intrarea bitului BIOS Lock Enable (BLE) în registrul BIOS_CNTL al chipset-ului și să o împiedicați. Acest lucru se poate face în mai multe locuri, de exemplu aici:
    48 8B 4C 24 40 mov rcx,qword ptr ; Încărcați adresa structurii PchPlatformData în RCX 48 8B 41 50 mov rax,qword ptr ; Și în RAX - adresa structurii copil LockdownConfig F6 00 10 test byte ptr ,10h ; Verificați dacă al cincilea bit este setat (BiosLock) 74 25 je 0000000180001452 ; Dacă nu este instalat, treceți peste toate codurile de sub 8A 50 01 mov dl,byte ptr B9 B2 00 00 00 mov ecx,0B2h ; E8 A2 5A 00 00 apel 0000000180006EDC 4C 8D 87 DC 00 00 00 lea r8, ; RDI conține adresa de bază a registrelor LPC ale chipset-ului, iar 0xDC este offset-ul registrului BIOS_CNTL 33 C9 xor ecx,ecx 4C 8B CD mov r9,rbp 33 D2 xor edx,edx 4C 89 44 24 20 mov qword ptr , r8 E8 AA 76 00 00 apel 0000000180008AFC ; Instalați blocarea
    Puteți schimba JE în JMP, dar uneori în loc de un salt scurt dați peste unul lung, pentru care trebuie să calculați suplimentar offset-ul, așa că este mai bine să schimbați testul cu orice comandă care setează steag-ul ZF, de exemplu la xor rax, rax (48 31 C0) și posibila diferență a comenzilor de dimensiune corectată prin adăugarea de NOP.
    Dacă codul necesar nu se găsește în PchInitDxe, puteți modifica driverul BiosWriteProtect în așa fel încât să ocoliți înregistrarea handler-ului SMI aflat în acesta, care setează bitul BLE atunci când încercați să-l resetați, după care trebuie doar pentru a reseta acest bit pentru a debloca firmware-ul. Metoda descrisă mai sus funcționează bine pentru mine, așa că nu am încercat încă această opțiune și, prin urmare, nu o voi descrie în detaliu.

    Deblocarea setărilor avansate

    Ce: Deblochează accesul la setările ascunse ale BIOS Setup.
    Pentru ce: printre aceste setări s-ar putea să găsiți ceva interesant, dar de obicei sunt ascunse dintr-un motiv.
    Unde să caut: Pentru Phoenix și Insyde, meniul este stocat în fișiere HII cu nume precum SetupMain, SetupAdvanced etc. Pentru AMI, meniul este stocat în fișierul de configurare, iar setările sunt stocate în AMITSE. Mai mult, AMI oferă programul său AMIBCP producătorilor de produse pentru utilizatorii finali, versiuni ale cărora sunt adesea divulgate publicului. Lucrul cu el este destul de simplu, așa că nu văd niciun rost să îl descriu - descărcați-l și încercați.
    Metoda de modificare: pentru AMI - deschideți imaginea în AMIBCP, modificați setările implicite, salvați, flash, resetați, gata. Pentru Insyde și Phoenix, lucrurile sunt puțin mai complicate. Dacă accesul de scriere la NVRAM nu este interzis, puteți utiliza metoda prietenului Falseclock, descrisă în, dar dacă nu există acces, va trebui să modificați firmware-ul. Va trebui să analizați formatul fișierului formular HII fie manual, fie să furnizați acest lucru scriptului descris în articolul menționat mai sus, fie utilitarului Universal IFR Extractor, care trebuie aplicat fișierelor HII extrase din imaginea UEFI. După aceasta, schimbați doar condițiile SUPRESS_IF din fișierul Formular HII extras, astfel încât acestea să nu fie executate niciodată și toate meniurile vor deveni disponibile.

    CPU Microcode, OptionROM, drivere și imagini actualizate

    Ce: actualizarea microcodurilor CPU, firmware-ului diferitelor dispozitive periferice, drivere EFI și imagini afișate în timpul pornirii și în configurarea BIOS.
    Pentru ce: uneori o actualizare ajută la remedierea erorilor din sistem, uneori adaugă suport pentru o caracteristică importantă (TRIM pentru SSD-uri în RAID0, de exemplu), dar cel mai adesea actualizarea se face pentru că în sfârșit a fost lansată o nouă versiune.
    Unde să caut: depinde foarte mult de producător, driverele EFI pot fi găsite pur și simplu după nume (SataDriver, de exemplu), microcodul poate fi găsit după ID-ul modelului procesorului pentru care este destinat, OROM-urile - după VID/DID-ul dispozitivelor pe care le au servi, imaginile în format JPEG pot fi găsite după linia „JFIF”, în GIF - prin „GIF8”, etc.
    Metoda de modificare: la fel de simplu ca mooing - găsiți o versiune nouă în domeniul public, găsiți unde este cea veche în imagine și înlocuiți una cu cealaltă. Pentru tovarășul AMI LS_29 un set pentru actualizarea automată a fost scris pe baza utilitarului MMTool, îl puteți descărca din subiectul nostru de pe peste. Nu am auzit încă de soluții automate pentru Phoenix sau Insyde.
    Înlocuirea imaginilor se poate face fie cu utilități precum AMI ChangeLogo, fie manual, dar cel mai adesea o imagine care nu este pregătită într-un mod special provoacă o înghețare, deoarece Decodoarele cu format de imagine sunt foarte limitate. În general, este mai bine să ștergeți datele EXIF ​​în avans.

    Concluzie

    În acest articol, am descris doar acele moduri pe care le-am realizat cu succes cu propriile mele mâini. Dacă aveți comentarii sau completări, voi primi cu plăcere comentariile dvs.
    Încă o dată, cer cu umilință administrației Habr și personal OZN-ul să creeze un hub UEFI, pentru că acesta este un subiect foarte larg și literalmente nu există unde să pui articole despre el.
    Vă mulțumesc pentru atenție, vă doresc modificări reușite.

    Etichete:

    • UEFI
    • modificare
    • UEFITool
    Adaugă etichete