HAL, un framework di reverse engineering per circuiti elettronici digitali

hal_screenshot

HAL È un ambiente integrato per l'analisi dell'elenco dei circuiti elettronici digitaliè è un framework completo di reverse engineering e manipolazione per netlist a livello di porta che si concentrano su efficienza, scalabilità e portabilità. HAL viene fornito con un sistema di plugin completo che permette di introdurre funzionalità arbitrarie nel kernel.

L'interessante di HAL è che permette di vedere e analizzare il circuito nella GUI e di manipolarlo utilizzando script Python. Negli script, è possibile utilizzare la "libreria standard" allegata di funzioni che implementano operazioni di teoria dei grafi, utile per il reverse engineering di circuiti elettronici digitali (utilizzando queste funzioni, è possibile rilevare euristicamente vari design pattern e rimuovere semplici offuscamenti con uno script su più righe) .

La biblioteca include anche classi per la gestione dei progetti nell'IDE, che può essere utilizzato durante lo sviluppo di plug-in per l'analisi e l'ispezione della connessione. I parser sono forniti per i linguaggi di descrizione hardware VHDL e Verilog.

Questo ambiente è sviluppato da diverse università tedesche, scritto in C ++, Qt e Python e rilasciato con licenza MIT.

Delle sue caratteristiche principali spiccano i seguenti:

  • Rappresentazione grafica naturale diretta degli elementi della netlist e delle loro connessioni.
  • Supporto per librerie di porte personalizzate.
  • Alte prestazioni grazie al kernel C ++ ottimizzato
  • Modularità: scrivi i tuoi plugin C ++ per un'efficiente analisi e manipolazione degli elenchi di rete (ad esempio, utilizzando algoritmi grafici)
  • Una GUI ricca di funzionalità che consente l'ispezione visiva dell'elenco di reti e l'analisi interattiva
  • Una shell Python incorporata per interagire in modo esplorativo con gli elementi della netlist e per interagire con i plugin dalla GUI

Informazioni su HAL versione 2.0.0

Ora questo ambiente è nella sua versione 2.0.0 in quale Gli analizzatori VHDL e Verilog sono stati migliorati, insieme al sistema di compilazione CMake che è stato aggiornato per utilizzare configurazioni basate sugli obiettivi.

anche si evidenzia che è stato aggiunto il supporto per la gerarchizzazione e la modularizzazione, così come un'ulteriore vista di isolamento e un nuovo sistema di design.

Delle altre modifiche menzionato in questa nuova versione:

  • Modifiche al sistema bibliotecario della porta
  • BDD sostituito con funzioni booleane
  • Cambiamenti importanti nella rappresentazione interna dei tipi di cancello
  • Consente la differenziazione tra LUT, flip-flop, latch e tipi di gate combinatori
  • In Latch e Flip-flop è ora possibile specificare ingressi sequenziali speciali come abilitazione, clock, configurazione e ripristino.
  • Librerie di gate JSON sostituite con file di libertà
  • Sistema di plugin semplificato
  • Libreria Igraph inclusa
  • Revisione principale della GUI

Come installare HAL su Ubuntu e derivati?

Per coloro che sono interessati a installare questo framework di reverse engineering per circuiti elettronici, possono farlo seguendo le istruzioni che condividiamo di seguito.

HAL può essere installato in due modi in Ubuntu e derivati, il primo ci sta supportando dal repository dell'applicazione (Valido solo per Ubuntu 18.04).

Questo possiamo aggiungerlo al sistema con l'aiuto di un terminale (Puoi aprirlo con i tasti di scelta rapida Ctrl + Alt + T) e in esso digiteremo i seguenti comandi.

Per prima cosa aggiungeremo dal repository con:

sudo add-apt-repository ppa:sebastian-wallat/hal

Aggiorniamo i pacchetti e l'elenco dei repository con:

sudo apt-get update

E procediamo all'installazione dell'applicazione sul nostro sistema digitando il seguente comando:

sudo apt install hal-reverse

L'altro metodo di installazione è la compilazione dell'applicazione nel sistema. Per questo dobbiamo scaricare il codice HAL con l'aiuto di un terminale.

Per prima cosa digiteremo:

git clone https://github.com/emsec/hal.git && cd hal

Ora installeremo le dipendenze necessarie:

./install_dependencies.sh

E procediamo a compilare il codice con:

mkdir build && cd build

cmake ..

make

Terminata la compilazione, si procede ad eseguire l'installazione con:

make install

Infine può consultare la documentazione e altre informazioni su HAL nel seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.