Het is nu eenvoudig om de SP Flash Tool-authenticatie van MediaTek te omzeilen

Een groep ontwikkelaars heeft een Python-hulpprogramma gemaakt om de authenticatieroutine van MediaTek SP Flash Tool te omzeilen. Bekijk het nu!

Apparaten met MediaTek-chipsets hebben een BROM (boot read-only memory), die doorgaans de preloader laadt uitvoerbaar en start vervolgens het Android-systeem op, maar bevat ook een alternatieve opstartmodus die bekend staat als Download modus. Het is uitsluitend bedoeld voor OEM-onderhoud en kan bijvoorbeeld worden gebruikt om een ​​apparaat te ontkoppelen Qualcomm's nooddownloadmodus (EDL). Een door MediaTek gemaakt eigen programma genaamd "SP Flash Tool" kan deze interface gebruiken om de systeemsoftware op een apparaat te forceren. Omdat de downloadmodus op laag niveau feitelijk volledige controle heeft over de opslag van het apparaat, hebben veel OEM's, waaronder Xiaomi en Realme, dat wel begon het knipperende proces te verdoezelen. Vanwege deze praktijk kan het flashen van firmware via de downloadmodus alleen worden uitgevoerd door een ondertekend “Download Agent”-programma dat is geautoriseerd door de overeenkomstige OEM, wat in wezen betekent dat

je kunt je eigen smartphone niet flashen of unbricken, tenzij je daarvoor toestemming hebt van de fabrikant van het apparaat.

Welnu, de fantastische ontwikkelaarsgemeenschap van XDA is opnieuw te hulp gekomen. Gebaseerd op een boot-ROM-exploit oorspronkelijk ontdekt door XDA Senior-lid xyz`, ontwikkelaars Dinolek En k4y0z hebben een generieke bypass-methode bedacht, die compatibel is met een grote verscheidenheid aan door MediaTek aangedreven apparaten die anders authenticatie tijdens het flashen zouden vereisen. De methode, die gebruik maakt van SoC-specifieke exploit-payloads, onderschept de pre-flash-query's van SP Flash Tool en stelt de waarden van twee cruciale parameters krachtig in. ("Seriële linkverificatie" en "Authentificatie van downloadagent") als false in om het flashproces voort te zetten zonder enige vorm van autorisatie.


Het is belangrijk op te merken dat de exploit-payloads een speciaal aangepast USB-stuurprogramma vereisen voor een succesvolle onderschepping. Als u Windows gebruikt, moet u een op libusb gebaseerd filterstuurprogramma installeren om de standaard stuurprogrammaset te overschrijven. Linux-gebruikers daarentegen moeten dat wel doen een specifieke pleister aanbrengen naar de kern. Als u uw primaire besturingssysteem niet wilt aanraken, kunt u gebruik maken van VuurISO – een opstartbare GNU/Linux ISO die speciaal voor dit doel is ontworpen.

Als het gaat om toegang tot de MediaTek-downloadmodus, hoeft u alleen maar het doelapparaat uit te schakelen, de knop Volume omhoog (Volume omlaag voor Xiaomi-telefoons) ingedrukt te houden en uw telefoon op uw pc aan te sluiten. U zou een nieuw serieel apparaat moeten zien onder Apparaatbeheer (Windows) of in de uitvoer van dmesg | grep usb (Linux).

Volg nu dit eenvoudige proces van 5 stappen om de bootrom-beveiliging uit te schakelen:

  1. Download en installeer Python. Windows-gebruikers moeten "Add Python X.X to PATH" selecteren wanneer daarom wordt gevraagd.
  2. Installeer de vereiste afhankelijkheden met behulp van pip:
    pip install pyusb pyserial json5
  3. Download het bypass-hulpprogramma.
  4. Pak het archief uit, voer het hulpprogramma uit en sluit uw telefoon aan in de MediaTek-downloadmodus. Aan het einde van het logboek zou de melding "Bescherming uitgeschakeld" moeten verschijnen.
    • Ramen:
      pythonmain.py
    • Linux:
      ./main.py
  5. Voer daarna, zonder uw telefoon los te koppelen, SP Flash Tool uit in de UART-verbindingsmodus.

En dat is het! De authenticatieroutine wordt omzeild en u bent nu klaar om uw telefoon te flashen/unbricken. Als iemand met meer ervaring nog een stap verder wil gaan, kan hij of zij een aangepaste partitieback-up flashen repareer een mislukte IMEI, maar dit valt buiten het bestek van dit artikel.

De lijst met SoC's die momenteel worden ondersteund, vindt u hieronder. Er wordt aangenomen dat de bypass-methode op dezelfde manier werkt op andere MediaTek-chipsets, maar iemand moet eerst een geschikte payload coderen om de bootrom-beveiligingsroutine uit te schakelen.

Lijst met ondersteunde SoC's

  • mt6261
  • mt6572
  • mt6580
  • mt6582
  • mt6735
  • mt6737
  • mt6739
  • mt6755
  • mt6757
  • mt6761
  • mt6763
  • mt6765
  • mt6768
  • mt6771
  • mt6785
  • mt6799
  • mt6873
  • mt8127
  • mt8163
  • mt8173
  • mt8695

Lees verder

Conclusie

Weet je nog, bijna een jaar geleden bleek dat MediaTek-chipsets gevoelig waren voor een gevaarlijke rootkit, en het werd actief uitgebuit door hackers om root-toegang te verkrijgen. Dit in aanmerking genomen is het onbekend waarom het Taiwanese chipontwerpbedrijf nog steeds niet de fout in zijn chipsets heeft verholpen, waardoor de vertrouwensketen tijdens het flashen kan worden omzeild. Hoewel we alleen maar de goede kant van de situatie hebben gezien, is het vanuit veiligheidsperspectief zelfs nog erger als je kijkt naar de honderden minder bekende apparaatmodellen die deze MediaTek-chips gebruiken.

Er is nog een ander aspect van de situatie vanuit het standpunt van de gemeenschap voor maatwerkontwikkeling, wier belangen wij vertegenwoordigen. Een meerderheid van de MediaTek-apparaten bevindt zich in een onhoudbare combinatie van gemakkelijk te bouwen en moeilijk nieuw leven in te blazen. Bovendien beperkt de gedwongen autorisatievereiste feitelijk het potentieel van aftermarket-ontwikkeling op hen. De bypass-methode is niets anders dan een sprankje hoop voor eigenaren van MediaTek-apparaten, die gewoon het gedoe met betrekking tot het ontkoppelen uit de modding-scene willen halen.

Degenen die geïnteresseerd zijn in het verkennen van de codebasis van de bypass-methode moeten de onderstaande GitHub-link bekijken. U kunt ook communiceren met de ontwikkelaars door naar de discussie draad.

MediaTek SP Flash Tool-authenticatie omzeil GitHub Repo