HAL, un framework d'enginyeria inversa per circuits electrònics digitals

hal_screenshot

HAL és un entorn integrat per a l'anàlisi de la llista de circuits electrònics digitals, Aquest és un marc integral d'enginyeria inversa i manipulació per netlists a nivell de porta que se centra en l'eficiència, la capacitat d'ampliació i la portabilitat. HAL ve amb un sistema de complements complet que permet introduir funcionalitats arbitràries en el nucli.

L'interessant d'HAL és que permet veure i analitzar el circuit en la GUI i manipular utilitzant scripts de Python. En els scripts, es pot usar la «biblioteca estàndard» adjunta de funcions que implementen operacions de teoria de grafs, útils per a l'enginyeria inversa de circuits electrònics digitals (usant aquestes funcions, es pot detectar heurísticament diversos patrons de disseny i eliminar ofuscacions simples amb un script en diverses línies).

la biblioteca també inclou classes per a la gestió de projectes en l'IDE, que es poden usar a l'desenvolupar complements per a l'anàlisi i la inspecció de connexions. Es proporcionen analitzadors per als llenguatges de descripció de hardware VHDL i Verilog.

Aquest entorn està desenvolupat per diverses universitats alemanyes, Escrit en C ++, Qt i Python i alliberat sota la llicència MIT.

De les seves principals característiques es destaquen les següents:

  • Representació gràfica natural dirigida d'elements de netlist i les seves connexions.
  • Suport per a biblioteques de portes personalitzades.
  • Alt rendiment gràcies a l'nucli C ++ optimitzat
  • Modularitat: escrigui els seus propis complements de C ++ per a una anàlisi i manipulació eficient de la llista de xarxes (per exemple, mitjançant algoritmes de gràfics)
  • Una GUI rica en funcions que permet la inspecció visual de la llista de xarxes i l'anàlisi interactiu
  • Un shell de Python integrat per interactuar explorativamente amb elements de netlist i per interactuar amb complements des de la GUI

Sobre la versió de HAL 2.0.0

Actualment aquest entorn es troba en la seva versió 2.0.0 en la qual els analitzadors VHDL i Verilog van ser millorats, juntament amb el sistema de compilació CMake que actualitzo per utilitzar configuracions basades en objectius.

També es destaca que es va afegir suport per jerarquització i modularització, així com també una vista d'aïllament addicional i un nou sistema de disseny.

Dels altres canvis que s'esmenten d'aquesta nova versió:

  • Canvis en el sistema de biblioteca de porta
  • BDD reemplaçats amb funcions booleanes
  • Canvis importants en la representació interna dels tipus de comporta
  • Permet la diferenciació entre LUT, flip-flops, pestells i tipus de comporta combinacional
  • En latches i Flip-flops ara es poden especificar entrades seqüencials especials com habilitar, rellotge, configurar i restablir.
  • Es van reemplaçar les biblioteques de portes JSON amb arxius de llibertat
  • Sistema de complements simplificat
  • Biblioteca de igraph inclosa
  • Revisió principal de la GUI

Com instal·lar HAL en Ubuntu i derivats?

Per als que estiguin interessats a instal·lar aquest marc d'enginyeria inversa per circuits electrònics, poden fer-ho seguint les instruccions que compartim a continuació.

HAL es pot instal·lar de dues formes en Ubuntu i derivats, la primera d'elles és recolzant-nos de l'repositori de l'aplicació (Vàlid només per a Ubuntu 18.04).

Aquest el podem afegir a el sistema amb ajuda d'una terminal (Podeu obrir amb la drecera de tecles Ctrl + Alt + T) i en ella anem a teclejar les ordres.

Primer anem a afegir de l'repositori amb:

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

Actualitzem els paquets i llista de repositoris amb:

sudo apt-get update

I procedim a realitzar la instal·lació de l'aplicació en el nostre sistema teclejant la següent comanda:

sudo apt install hal-reverse

L'altre mètode d'instal·lació és mitjançant la compilació de l'aplicació en el sistema. Per a això hem de descarregar el codi d'HAL amb ajuda d'una terminal.

Primer anem a teclejar:

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

Ara instal·larem les dependències necessàries:

./install_dependencies.sh

I procedim a realitzar la compilació de el codi amb:

mkdir build && cd build

cmake ..

make

Ja acabada la compilació, procedim a realitzar la instal·lació amb:

make install

Finalment poden consultar la documentació i la resta d'informació a l'respecte de HAL en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.