HAL, un cadre de rétro-ingénierie pour les circuits électroniques numériques

hal_screenshot

HAL C'est un environnement intégré pour l'analyse de la liste des circuits électroniques numériquescette est un cadre complet d'ingénierie inverse et de manipulation pour les listes de réseaux au niveau de la porte qui se concentrent sur l'efficacité, l'évolutivité et la portabilité. HAL est livré avec un système de plugins compléter qui permet d'introduire des fonctionnalités arbitraires dans le noyau.

L'intéressant par HAL c'est qu'il permet de voir et d'analyser le circuit dans l'interface graphique et de le manipuler en utilisant des scripts python. Dans les scripts, vous pouvez utiliser la «bibliothèque standard» jointe de fonctions qui implémentent des opérations de théorie des graphes, utile pour la rétro-ingénierie de circuits électroniques numériques (en utilisant ces fonctions, vous pouvez détecter de manière heuristique divers modèles de conception et supprimer des obfuscations simples avec un script sur plusieurs lignes) .

La bibliothèque il comprend également des classes de gestion de projet dans l'EDI, qui peut être utilisé lors du développement de plug-ins pour l'analyse et l'inspection des connexions. Des analyseurs sont fournis pour les langages de description de matériel VHDL et Verilog.

Cet environnement est développé par plusieurs universités allemandes, écrit en C ++, Qt et Python et publié sous la licence MIT.

De ses principales caractéristiques les suivants se démarquent:

  • Représentation graphique naturelle dirigée des éléments de la netlist et de leurs connexions.
  • Prise en charge des bibliothèques de portes personnalisées.
  • Haute performance grâce à un noyau C ++ optimisé
  • Modularité - Écrivez vos propres plugins C ++ pour une analyse et une manipulation efficaces des listes de réseaux (par exemple, en utilisant des algorithmes graphiques)
  • Une interface graphique riche en fonctionnalités qui permet une inspection visuelle de la liste du réseau et une analyse interactive
  • Un shell Python intégré pour interagir de manière exploratoire avec les éléments de la netlist et pour interagir avec les plugins à partir de l'interface graphique

À propos de HAL version 2.0.0

Maintenant cet environnement est dans sa version 2.0.0 dans laquelle Les analyseurs VHDL et Verilog ont été améliorés, avec le système de build CMake qui a été mis à jour pour utiliser des configurations basées sur les objectifs.

Aussi il est souligné que la prise en charge de la hiérarchisation et de la modularisation a été ajoutée, ainsi qu'une vue d'isolation supplémentaire et un nouveau système de conception.

Des autres changements mentionné dans cette nouvelle version:

  • Modifications du système de bibliothèque de portes
  • BDD remplacé par des fonctions booléennes
  • Changements majeurs dans la représentation interne des types de portes
  • Permet la différenciation entre les LUT, les bascules, les verrous et les types de portes combinatoires
  • Dans les verrous et les bascules, vous pouvez désormais spécifier des entrées séquentielles spéciales telles que l'activation, l'horloge, la configuration et la réinitialisation.
  • Bibliothèques de portes JSON remplacées par des fichiers de liberté
  • Système de plugin simplifié
  • Bibliothèque Igraph incluse
  • Examen majeur de l'interface graphique

Comment installer HAL sur Ubuntu et ses dérivés?

Pour ceux qui sont intéressés par l'installation de ce cadre de rétro-ingénierie pour les circuits électroniques, ils peuvent le faire en suivant les instructions que nous partageons ci-dessous.

HAL peut être installé de deux manières dans Ubuntu et ses dérivés, le premier nous soutient depuis le référentiel de l'application (Valable uniquement pour Ubuntu 18.04).

cette nous pouvons l'ajouter au système à l'aide d'un terminal (Vous pouvez l'ouvrir avec les touches de raccourci Ctrl + Alt + T) et nous allons y taper les commandes suivantes.

Nous allons d'abord ajouter à partir du référentiel avec:

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

Nous mettons à jour les packages et la liste des référentiels avec:

sudo apt-get update

Et nous procédons à l'installation de l'application sur notre système en tapant la commande suivante:

sudo apt install hal-reverse

L'autre méthode d'installation consiste à compiler de l'application dans le système. Pour cela, nous devons télécharger le code HAL à l'aide d'un terminal.

Nous allons d'abord taper:

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

maintenant nous allons installer les dépendances nécessaires:

./install_dependencies.sh

Et nous procédons à la compilation du code avec:

mkdir build && cd build

cmake ..

make

Une fois la compilation terminée, nous procédons à l'installation avec:

make install

Enfin peut consulter la documentation et autres informations à propos de HAL dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.