Home Homebrew Rilasciato AMD-SP Loader v1.0

Rilasciato AMD-SP Loader v1.0

404
0

Il developer Specter pubblica una primissima versione del plugin binja (Binary Ninja) AMD-SP Loader, un caricatore per i file binari del firmware AMD Secure Processor (SP)/Platform Security Processor (PSP).

AMD Secure Processor (AMD-SP) precedentemente Platform Security Processor (PSP) è un minuscolo coprocessore a microcontrollore integrato nei chip della famiglia AMD che fornisce le funzionalità necessarie per la gestione remota delle risorse, un sottosistema di sicurezza dedicato e un avvio sicuro.

Il Secure Processor esegue il proprio codice kernel sicuro firmato AMD (closed-source) e fornisce la maggior parte delle funzionalità relative alla crittografia per i SoC di AMD, tra cui la generazione e la gestione delle chiavi, l’avvio convalidato e varie altre funzionalità della piattaforma sicura AMD.

Il plugin una volta installato tenterà di caricare il Bootloader AGESA (ABL) e i BLOB del Bootloader andando ad impostare gli indirizzi di caricamento corretti.

Facoltativamente, il caricatore ABL annoterà anche le chiamate di sistema utilizzando il dizionario presente in ./data/syscalls.json.

Installazione

Per installare questo plugin, andare alla directory dei plugin di Binary Ninja (può essere trovata andando su Tools -> “Open Plugin Folder”) e digitando il seguente comando:

git clone https://github.com/dayzerosec/AMD-SP-Loader

Nota che probabilmente dovrai riavviare Binary Ninja per caricare il plugin.

Utilizzo

Questo caricatore è destinato all’uso con i file binari estratti tramite lo strumento PSPTool, in quanto questo caricatore non estrarrà il firmware da UEFI né eseguirà alcuna decompressione prima del caricamento.

Basta caricare un binario ABL*PSP_FW_BOOTLOADER_*per utilizzare il caricatore. Il nome visualizzato in alto a sinistra nel riquadro dovrebbe avere un prefisso AMD-SP. Se il tuo particolare BLOB del firmware non viene caricato e/o viene caricato a un indirizzo errato, segnala un problema.

Lavoro futuro/Luoghi per il contributo

  • Attualmente gli indirizzi di caricamento sono statici, forse questo dovrebbe essere rielaborato per determinarlo dinamicamente tramite l’analisi delle istruzioni del punto di ingresso?
  • Aggiungere caricatori per altri firmware:
    • SMU (estesa).
    • Sistema operativo affidabile (tOS).
    • Trustlet di avvio.
  • Invertire e aggiungere più chiamate di sistema al dizionario delle annotazioni.
  • Aggiornare gli argomenti delle chiamate di sistema esistenti.
  • Migliorare le annotazioni per correggere le chiamate di sistema in HLIL.

Note

  • I caricatori fanno alcune ipotesi sull’indirizzo di caricamento e simili, quindi è possibile che un particolare binario differisca e non venga caricato correttamente (apri un problema).
  • Le annotazioni Syscall con prefisso a _ non sono ufficiali/indovinate.

Versione minima

Questo plugin richiede la seguente versione minima di Binary Ninja:

  • Release – 3.2.3814

Risorse

Licenza

  • Questo plugin è rilasciato con licenza MIT.

Ringraziamenti

  • PSPReverse per il lavoro precedente e le fantastiche risorse.
  • Carstein (ispirazione e riferimento per l’annotazione di syscall tramite Syscaller

Changelog

  • Possibilità di caricare i binari AGESA Bootloader (ABL).
  • Possibilità di caricare i binari del Bootloader.
  • Annotazione syscall di base per ABL.

Download: Source code AMD-SP Loader v1.0

Fonte: twitter.com