• SZKOLENIE nr 4: BIOS - CZYSZCZENIE I PRZENOSZENIE ME REGIONU W PLATFORMACH INTELA

#1SZKOLENIE nr 4: BIOS - CZYSZCZENIE I PRZENOSZENIE ME REGIONU W PLATFORMACH INTELA


przez Vogelek23 7 grudnia 2023, 13:49
1. WSTĘP

Płyty główne z procesorami Intel serii Core i3/i5/i7 od pierwszej generacji oparte są o architekturę jednomostkową PCH (Platform Controller Hub). Mostki te mogą występować na płycie jako osobne układy (np. BD82HM55, BD82HM76) lub jako rdzenie zintegrowane z procesorami ULV (np. Core i5-7200U). Na zdjęciach poniżej widzimy klasyczny mostek PCH (osobny układ) oraz PCH zintegrowany w procesorze (mniejszy rdzeń).
Obrazek
Obrazek

Można by powiedzieć, że mostki PCH są połączeniem mostu północnego z południowym, znanych nam ze starszych platform Intela (np. GM965 + ICH8M). Jednakże PCH nie zawiera w swej strukturze kontrolera pamięci ani układu graficznego (obie te funkcje zostały przeniesione do procesorów), a jedynie interfejsy zewnętrzne, jak np. DisplayPort do obsługi wbudowanego ekranu. Dodatkowo, mostek PCH ma wbudowany podsystem zarządzania i zabezpieczeń (ME - Management Engine lub w nowszych platformach CSME - Converged Security and Management Engine). ME/CSME jest zatem de facto oprogramowaniem, zaś PCH - zaawansowanym mikrokontrolerem, wykonującym kod ME/CSME.

W niniejszym szkoleniu poruszymy niezbędne zagadnienia, dotyczące wsadów BIOS dla płyt głównych z procesorami Intel serii Core i3/i5/i7/i9 oraz mostkami PCH. Poznamy m.in. fundamentalne zasady pracy ze wsadami BIOS, różnice pomiędzy odmianami regionów ME, nauczymy się technik czyszczenia i przenoszenia regionów oraz dowiemy się, jak poprawnie analizować zgrane wsady BIOS. Szkolenie będzie miało charakter głównie praktyczny, choć nieco teorii będziemy musieli przyswoić, aby zrozumieć "co z czym się je". Zapraszam zatem do zgłębiania wiedzy, która (mam nadzieję) wielu z Was rozjaśni pewne zagadnienia oraz sprawi, że przygotowywanie wsadów BIOS nie będzie dla Was żadną tajemnicą!

Re: SZKOLENIE nr 4: BIOS - CZYSZCZENIE I PRZENOSZENIE ME REGIONU W PLATFORMACH INTELA


przez Google Adsense [BOT] 7 grudnia 2023, 13:49

#2 Re: SZKOLENIE nr 4: BIOS - CZYSZCZENIE I PRZENOSZENIE ME REGIONU W PLATFORMACH INTELA


przez Vogelek23 29 stycznia 2024, 04:03
2. GARŚĆ TEORII

ME (Management Engine) jest niezależnym koprocesorem, osadzonym w fizycznej strukturze mostka PCH lub zintegrowanym z procesorem SoC (System-on-Chip). Działa samodzielnie i niezależnie od CPU, BIOSu czy systemu operacyjnego, choć w wielu aspektach współpracuje tak z oprogramowaniem BIOS, jak i z jądrem systemu operacyjnego (kernel). ME oznacza zarówno hardware (koprocesor) jak i firmware (oprogramowanie). Oprogramowanie ME - czyli między innymi nasz region ME - jest w przeważającej części nieudokumentowane publicznie, choć z dostępnych tu i ówdzie szczątkowych informacji wiemy, że ME potrafi kontrolować praktycznie wszystkie elementy systemu komputerowego - zarówno sprzęt (płytę główną) jak i oprogramowanie (BIOS/UEFI, system operacyjny). Nie powinno nas zatem dziwić, że niepoprawne lub uszkodzone oprogramowanie ME jest w stanie unieruchomić płytę główną.

Wyróżniamy kilka rodzajów oprogramowania ME:
  • TXE/CSTXE (Trusted eXecution Engine/Converged Security Trusted eXecution Engine) - wersja ME, zaprojektowana dla procesorów o niskim poborze mocy, jednordzeniowych, stosowanych w tabletach oraz niskobudżetowych laptopach (np. Pentium N4200).
  • ME/CSME (Management Engine/Converged Security Management Engine) - wersja ME, zaprojektowana dla procesorów z wydzielonym rdzeniem PCH (np. Core i5-5200U) oraz dla odrębnych mostków PCH (np. FH82HM370).
  • SPS/CSSPS (Server Platform Services/Converged Security Server Platform Services) - wersja ME, zaprojektowana głównie dla urządzeń serwerowych oraz dla procesorów typu SoC.

Wszystkie powyższe rodzaje oprogramowania ME zawierają następujące moduły:
  • Boot Guard,
  • Secure Boot,
  • Quiet System Technology,
  • Protected Audio Video Path,
  • Serial Over LAN,
  • Platform Trust Technology, będący programową odmianą TPM (Trusted Platform Module),
  • NFC (Near Field Communication).

CSTXE, CSME oraz CSSPS zawierają dodatkowo obsługę technologii Intel AMT (Active Management Technology), czyli możliwość zdalnego zarządzania platformą.

Tyle teorii. Przechodzimy zatem do praktyki, bo nic lepiej nie utrwali naszych umiejętności :)

#3 Re: SZKOLENIE nr 4: BIOS - CZYSZCZENIE I PRZENOSZENIE ME REGIONU W PLATFORMACH INTELA


przez Vogelek23 31 stycznia 2024, 02:35
3. NARZĘDZIA

Do pracy ze wsadami BIOS i regionami ME będziemy potrzebowali kilku narzędzi. Ze sprzętu potrzebujemy oczywiście komputera z systemem Windows oraz programatora pamięci Flash SPI. Jeśli chodzi o aplikacje i pliki, oto ich lista:

W przypadku dwóch ostatnich pozycji, wersję FIT oraz regionu ME będziemy dobierali, bazując na odczytanych w aplikacji MEA informacjach. Nie można wybrać dowolnej wersji regionu ME czy też dowolnej wersji FIT - w kolejnych lekcjach nauczymy się wybierać właściwe wersje tych plików.

#4 Re: SZKOLENIE nr 4: BIOS - CZYSZCZENIE I PRZENOSZENIE ME REGIONU W PLATFORMACH INTELA


przez Vogelek23 23 marca 2024, 17:49
3. ANALIZA WSADU BIOS

Aby rozpocząć pracę z regionem ME, musimy dowiedzieć się o nim paru kluczowych rzeczy:
  • Wersja regionu
  • SKU
  • rozmiar (długość regionu)
  • obsługiwane chipsety
Wszystkich tych informacji dostarczy nam aplikacja ME Analyzer. W starszych wersjach regionu ME (do 10.x włącznie) ilość danych, które prezentuje aplikacja ME Analyzer, jest mniejsza, niż w nowszych (od 11.x wzwyż).

Obsługa aplikacji ME Analyzer jest bardzo prosta - aby odczytać informacje o regionie ME ze wsadu BIOS, wystarczy uruchomić ME Analyzer, a następnie przeciągnąć i upuścić nad jej oknem nasz wsad (ścieżka do pliku BIOS wklei się automatycznie do okna ME Analyzera) i nacisnąć klawisz Enter.

Sprawdźmy zatem na dwóch różnych plikach, jakich danych się spodziewać. Na początek wsad BIOS z platformy, opartej na mostku PCH Intel HM55.
Obrazek

Widzimy, że wszystkie potrzebne nam dane są widoczne (zaznaczone na żółto). Wersja regionu to 6.0.30.1203, SKU to 1.5MB, rozmiar to 0xE5000 (podawany zawsze jako liczba szesnastkowa) a obsługiwany chipset to IBX. Sprawdźmy więc nieco nowszy wsad z platformy, opartej na mostku PCH Intel HM470.
Obrazek

I znów widzimy zaznaczone na żółto interesujące nas informacje. Wersja regionu to 14.0.0.1061, SKU to Consumer LP, rozmiar to 0x2DC000 a obsługiwane chipsety to CNP/CMP-LP B,A. I w zasadzie te cztery pozycje są dla nas najbardziej istotne. Możemy jednakże spotkać się z sytuacją, że ME Analyzer pokaże nam taki wynik:
Obrazek

Przyczyną tego może być jedna z poniższych opcji:
  • wsad BIOS pochodzi ze starej płyty, opartej o dwumostkową architekturę Intela (brak regionu ME)
  • wsad BIOS pochodzi z płyty, opartej o architekturę AMD (brak regionu ME)
  • wsad BIOS ma uszkodzony lub usunięty region ME (jeśli płyta posiada PCH i ma tylko jedną kość BIOS)
  • odczytaliśmy niewłaściwą kość BIOS (jeśli płyta posiada PCH i ma więcej, niż jedną kość BIOS)
Ponieważ poznaliśmy już w zasadzie całą potrzebną nam teorię, w kolejnej lekcji przejdziemy bezpośrednio do praktyki.

#5 Re: SZKOLENIE nr 4: BIOS - CZYSZCZENIE I PRZENOSZENIE ME REGIONU W PLATFORMACH INTELA


przez Vogelek23 25 marca 2024, 00:41
4. CZYSZCZENIE REGIONU ME

Zasadnicze pytanie, które wielu z Was zadaje: po co czyścimy region ME? Czynność ta jest niezbędna przede wszystkim w przypadku, gdy wymieniamy mostek PCH (lub hybrydowy procesor) na fabrycznie nowy, bądź mamy jakiekolwiek podejrzenia, że region ME w naszym wsadzie jest uszkodzony. Skonfigurowany pod konkretny egzemplarz PCH region ME najczęściej nie pracuje poprawnie z fabrycznie nowym mostkiem PCH - z problemów, które najczęściej spotykamy, próbując uruchomić płytę z wymienionym mostkiem PCH i niewyczyszczonym regionem ME, wyróżniamy:
  • nieprawidłową pracę wentylatorów (zwykle obracają się z maksymalną prędkością)
  • wydłużona procedura POST (30-90 sekund od włączenia płyty do pojawienia się obrazu na ekranie)
  • brak obrazu (zatrzymanie procedury POST)
  • brak procedury startowej tzw. power sequence (po włączeniu płyta pobiera ≤ 50mA, nie włącza się przetwornica zasilania procesora)
Czyszczenie regionu ME (czyli wymiana regionu zainicjowanego i skonfigurowanego pod konkretny mostek PCH na taki, który nigdy nie był zainicjowany i skonfigurowany) polega zasadniczo na zdekompilowaniu wsadu BIOS za pomocą aplikacji Flash Image Tool (FIT), podmianie regionu ME i ponownym skompilowaniu wsadu BIOS tą samą aplikacją. W niektórych przypadkach moglibyśmy zrezygnować z dekompilacji wsadu i "czysty" region ME podmienić ręcznie w edytorze hex - w niniejszym szkoleniu nie będziemy jednak używali tej metody (opisanej zresztą w Szkoleniu nr 1 - lekcja 9). Informacje z poprzedniej lekcji (dotyczące analizy wsadu BIOS) będą odtąd wykorzystywane w każdym przypadku. Wsady BIOS do niniejszej lekcji zostały wybrane losowo, dzięki czemu będziemy umieli poprawnie przygotować niemal każdy wsad BIOS (dlaczego nie każdy, dowiemy się na końcu całego szkolenia). Przechodzimy zatem do praktyki.

Pierwszym wsadem BIOS, z którym będziemy dziś pracowali, jest wsad dla płyty PWWHA LA-7201P (laptop: Toshiba Satellite C660). Wsad pobrałem stąd: toshiba-c660-la-7201p-t46180.html - a ponieważ był on nieco za długi (zamiast spodziewanej długości 4194304 bajtów miał 4195328 bajtów), przyciąłem go o nadmiarowe 1024 bajtów z końca pliku. Wsad BIOS nie jest szczegółowo opisany, zatem nie wiemy, czy region ME jest wyczyszczony, czy nie - zakładamy więc, że nie jest.

Pierwszą czynnością do wykonania jest zawsze analiza wsadu BIOS. Aplikacja ME Analyzer pokazuje nam takie oto dane:
Obrazek
Wersja regionu: 7.0.4.1197, SKU: 1.5MB, długość: 0x17D000, obsługiwany chipset: CPT. Na ten moment najważniejsze są dla nas dwie pierwsze wartości. W repozytorium regionów szukamy interesującej nas wersji - w poście #6 widzimy, że są dostępne dwa pliki, przy czym pierwszy ma nazwę 7.0.4.1197_1.5MB_PRD_RGN, zaś drugi 7.0.4.1197_5MB_PRD_RGN. Ponieważ SKU w naszym pliku to 1.5MB, właściwy będzie ten pierwszy. Kopiujemy zatem plik na Pulpit.

Kolejny krok to dekompilacja naszego wsadu. Wersję FIT dobieramy zawsze do wersji regionu ME - jeśli nasz wsad ma region ME w wersji 7.0.4.1197, to szukamy FIT w wersji 7.x, przy czym najlepiej jest użyć wersję FIT najbliższą wersji regionu ME. W paczce z pierwszego postu: flash-image-tool-wszystkie-wersje-t54333.html znajdziemy dwie wersje: 7.1.13.1088 oraz 7.1.60.1191. Najbliższa wersji regionu jest ta pierwsza, więc użyjemy wersji FIT 7.1.13.1088. Wypakowujemy archiwum na pulpit i uruchamiamy plik fitc.exe - ukaże się nam interfejs programu:
Obrazek

Klikamy kolejno: File -> Open, w obszarze "Typy plików" wybieramy BIN lub ROM (zależnie od tego, w jakim formacie jest nasz wsad BIOS) i otwieramy wsad. Program zapyta nas o wybranie właściwej serii chipsetu z listy:
Obrazek
W tym konkretnym przypadku jest dostępna tylko jedna opcja, więc możemy kliknąć OK - w przypadku, gdy nie mamy pewności, jaką opcję z listy wybrać, klikamy Cancel. Aplikacja FIT powinna i tak automatycznie wybrać odpowiedni chipset (w naszym przypadku jest to HM65), jeśli jednak aplikacja wybierze niewłaściwy PCH, ręcznie wybieramy z listy ten poprawny:
Obrazek

Teraz klikamy kolejno: Build -> Build settings, odznaczamy opcję Generate intermediate build files i klikamy OK. Następnie klikamy kolejno: File -> Save as i zapisujemy plik Untitled.xml na Pulpicie. Konfiguracja FIT została niniejszym zakończona, więc zamykamy aplikację FIT (ta czynność jest tu istotna).

Po dekompilacji wsadu BIOS, w folderze głównym aplikacji FIT pojawił się nowy folder - jego nazwa jest tożsama z nazwą pliku BIOS. Wchodzimy w ten folder, a następnie dalej do folderu Decomp. Zawartość tego folderu wygląda następująco:
Obrazek
Najbardziej interesujący nas plik to ME Region.bin. Usuwamy ten plik do Kosza (nigdy nie usuwamy trwale oryginalnego regionu ME, dopóki nie potwierdzimy, że płyta po wgraniu wsadu BIOS z wyczyszczonym regionem ME pracuje w 100% poprawnie), a do folderu Decomp przenosimy rozpakowany wcześniej na Pulpicie plik "czystego" regionu ME: 7.0.4.1197_1.5MB_PRD_RGN.bin i zmieniamy jego nazwę na ME Region.bin (czyli dokładnie taką, jaką miał oryginalny plik - wielkość liter w nazwie też ma znaczenie).

Otwieramy ponownie aplikację FIT, a następnie klikamy kolejno: File -> Open i wybieramy utworzony wcześniej plik konfiguracyjny Untitled.xml (plik zostanie automatycznie wczytany). Następnie klikamy kolejno: Build -> Build Image lub klikamy klawisz F5. Po kilku sekundach możemy zamknąć aplikację FIT (niższe wersje nie wyświetlają żadnego potwierdzenia utworzenia skompilowanego wsadu). Teraz przechodzimy do folderu Build w folderze głównym FIT, gdzie widzimy dwa nowe pliki: outimage.bin i outimage.map.
Obrazek
Nas interesuje plik outimage.bin - jest to nasz wsad BIOS skompilowany z "czystym" regionem ME, gotowy do bezpośredniego zaprogramowania kości BIOS. Widzimy także, że plik ma poprawny rozmiar: 4194304 bajty (równo 4MB).

---------

Kolejnym wsadem BIOS, z którym będziemy dziś pracowali, jest wsad dla płyty GS557 GS558 NM-C681 (laptop: Lenovo Ideapad 5-15IIL05). Wsad pobrałem stąd: bios-lenovo-ideapad-5-15iil05-nm-c681-rev-1-0-t72045.html. Także i tutaj nie wiemy, czy region ME jest wyczyszczony, czy nie, bo autor nie podał takiej informacji - zakładamy więc, że nie jest.

ME Analyzer pokazuje nam takie oto dane:
Obrazek
Wersja regionu: 13.0.40.1594, SKU: Consumer LP, długość: 0x381000, obsługiwany chipset: ICP-LP D. Od razu widzimy jednak, że danych jest dużo więcej - ME Analyzer pokazuje także informacje o PMC, PCHC oraz PHY. Dla nas jednak istotne są: wersja regionu, SKU oraz obsługiwany chipset. W repozytorium regionów szukamy interesującej nas wersji - w poście #24 (druga podstrona) są dostępne dwa pliki, przy czym pierwszy ma nazwę 13.0.40.1594_CON_LP_D_PRD_EXTR, zaś drugi 13.0.40.1594_SLM_N_A_PRD_EXTR. Ponieważ SKU w naszym pliku to "Consumer LP" a obsługiwany chipset to "ICP-LP D", właściwy będzie pierwszy region (ma w nazwie frazę CON_LP, czyli SKU, oraz literę D, czyli ostatni znak z obsługiwanego chipsetu). Kopiujemy zatem ten plik na Pulpit.

Kolejny krok to dekompilacja naszego wsadu. Wiemy już, że wersję FIT dobieramy do wersji regionu ME - jednakże w przypadku regionów ME w wersji od 11.x wzwyż (czyli CSME) aplikacja ME Analyzer podaje nam także informację o tym, jaką wersją FIT został skompilowany nasz wsad:
Obrazek
Tutaj jest to wersja 13.0.33.1495. Wybieramy zatem albo tę samą, albo najbliższą wyższą wersję FIT, dostępną na forum. W paczce z postu #13: post292439.html#p292439 najniższa dostępna wersja (wyższa niż oryginalna wersja FIT) to 13.0.37.1556, której użyjemy. Wypakowujemy zatem archiwum na pulpit i uruchamiamy plik fit.exe - ukaże się nam interfejs programu:
Obrazek
Jak widzimy (zaznaczyłem zielonym kolorem), FIT automatycznie wykrył i ustawił właściwy chipset. Jego interfejs jest także nieco bardziej rozbudowany, niż w poprzednich wersjach.

Teraz klikamy kolejno: File -> Open i otwieramy nasz wsad - nowsze wersje FIT nie wymagają zmiany typu pliku, ponieważ domyślnie otwierają zarówno pliki konfiguracyjne XML, jak i wsady BIN. Następnie klikamy kolejno: Build -> Build settings, zmieniamy opcję Generate Intermediate Files na "NO" i klikamy przycisk Close. Teraz klikamy kolejno: File -> Save as, zapisujemy plik konfiguracyjny Untitled.xml na Pulpicie i zamykamy aplikację FIT (ta czynność jest tu istotna).

Po dekompilacji wsadu BIOS, w folderze głównym aplikacji FIT pojawił się nowy folder - tak jak w poprzednich wersjach, jego nazwa jest tożsama z nazwą pliku BIOS. Wchodzimy w ten folder, a następnie dalej do folderu Decomp. Zawartość tego folderu wygląda następująco:
Obrazek
Jak widzimy, plików jest dużo więcej, niż w przypadku starszej wersji FIT. W tym wypadku interesujący nas plik ma nazwę ME Sub Partition.bin. Usuwamy ten plik do Kosza (nigdy nie usuwamy trwale oryginalnego regionu ME, dopóki nie potwierdzimy, że płyta po wgraniu wsadu BIOS z wyczyszczonym regionem ME pracuje w 100% poprawnie), a do folderu Decomp przenosimy rozpakowany wcześniej na Pulpicie plik "czystego" regionu ME: 13.0.40.1594_CON_LP_D_PRD_EXTR.bin i zmieniamy jego nazwę na ME Sub Partition.bin.

Otwieramy ponownie aplikację FIT, a następnie klikamy kolejno: File -> Open i wybieramy utworzony wcześniej plik konfiguracyjny Untitled.xml (plik zostanie automatycznie wczytany). Następnie klikamy kolejno: Build -> Build Image lub klikamy skrót klawiszowy CTRL+B. Teraz najprawdopodobniej wyświetli się nam jeden lub więcej komunikatów, które wystarczy zatwierdzić (kliknąć przycisk YES), aby kontynuować kompilację:
Obrazek
Nowsze wersje FIT pokazują na bieżąco informacje o statusie kompilacji wsadu BIOS. Jeśli kompilacja przebiegła poprawnie, powinniśmy otrzymać taki wynik:
Obrazek
Wygenerowanie plików "outimage" i brak błędów (czerwona czcionka w oknie statusu kompilacji) jest potwierdzeniem, że kompilacja zakończyła się sukcesem. Przechodzimy więc do folderu głównego FIT, gdzie widzimy dwa nowe pliki: outimage.bin i outimage.map. Nas interesuje oczywiście ten pierwszy - wsad BIOS skompilowany z "czystym" regionem ME. Plik ma też poprawny rozmiar: 16777216 bajtów (równo 16MB).

Re: SZKOLENIE nr 4: BIOS - CZYSZCZENIE I PRZENOSZENIE ME REGIONU W PLATFORMACH INTELA


przez Google Adsense [BOT] 25 marca 2024, 00:41

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości

_______________________________
Wszelkie prawa zastrzeżone. Zabrania się kopiowania jakichkolwiek treści i elementów witryny bez zezwolenia.
Wszelkie opublikowane na tej stronie znaki handlowe, nazwy marek, produktów czy usług należą do ich prawnych właścicieli i zostały użyte wyłącznie w celach informacyjnych.