HAL, ein Reverse Engineering Framework für digitale elektronische Schaltungen

hal_screenshot

HAL Es ist eine integrierte Umgebung für die Analyse der Liste digitaler elektronischer Schaltungenist ist ein umfassendes Reverse Engineering- und Manipulations-Framework für Netzlisten auf Türebene, die sich auf Effizienz, Skalierbarkeit und Portabilität konzentrieren. HAL kommt mit einem Plugin-System . Dies ermöglicht die Einführung beliebiger Funktionen in den Kernel.

Das Interessante von HAL ist, dass es ermöglicht, die Schaltung in der GUI zu sehen, zu analysieren und zu manipulieren Verwenden von Python-Skripten. In Skripten können Sie die angehängte "Standardbibliothek" von Funktionen verwenden, die graphentheoretische Operationen implementieren, die für das Reverse Engineering digitaler elektronischer Schaltungen nützlich sind (mit diesen Funktionen können Sie verschiedene Entwurfsmuster heuristisch erkennen und einfache Verschleierungen mit einem Skript in mehreren Zeilen entfernen). .

Die Bibliothek Es enthält auch Klassen für das Projektmanagement in der IDE. Dies kann bei der Entwicklung von Plug-Ins für die Überprüfung und Analyse von Verbindungen verwendet werden. Parser werden für die Hardwarebeschreibungssprachen VHDL und Verilog bereitgestellt.

Dieses Umfeld wird von mehreren deutschen Universitäten entwickelt, geschrieben in C ++, Qt und Python und veröffentlicht unter der MIT-Lizenz.

Von seinen Hauptmerkmalen Folgendes fällt auf:

  • Gezielte natürliche grafische Darstellung von Netzlistenelementen und ihren Verbindungen.
  • Unterstützung für benutzerdefinierte Türbibliotheken.
  • Hohe Leistung dank optimiertem C ++ - Kernel
  • Modularität - Schreiben Sie Ihre eigenen C ++ - Plugins für eine effiziente Analyse und Bearbeitung von Netzwerklisten (z. B. mithilfe von Grafikalgorithmen).
  • Eine funktionsreiche Benutzeroberfläche, die eine visuelle Überprüfung der Netzwerkliste und eine interaktive Analyse ermöglicht
  • Eine integrierte Python-Shell für die explorative Interaktion mit Netzlistenelementen und für die Interaktion mit Plugins über die GUI

Über HAL Version 2.0.0

Jetzt Diese Umgebung befindet sich in der Version 2.0.0 in welchem VHDL- und Verilog-Analysatoren wurden verbessert, zusammen mit dem CMake-Build-System, das aktualisiert wurde, um zielbasierte Konfigurationen zu verwenden.

auch Es fällt auf, dass die Unterstützung für Hierarchie und Modularisierung hinzugefügt wurde. sowie eine zusätzliche Isolationsansicht und ein neues Designsystem.

Von den anderen Änderungen in dieser neuen Version erwähnt:

  • Änderungen am Türbibliotheksystem
  • BDD durch boolesche Funktionen ersetzt
  • Wesentliche Änderungen in der internen Darstellung von Gate-Typen
  • Ermöglicht die Unterscheidung zwischen LUTs, Flip-Flops, Latches und kombinatorischen Gate-Typen
  • In Latches und Flip-Flops können Sie jetzt spezielle sequentielle Eingänge wie Aktivieren, Takten, Konfigurieren und Zurücksetzen angeben.
  • JSON-Gate-Bibliotheken werden durch Freiheitsdateien ersetzt
  • Vereinfachtes Plugin-System
  • Igraph Bibliothek enthalten
  • GUI Major Review

Wie installiere ich HAL unter Ubuntu und Derivaten?

Für diejenigen, die an der Installation dieses Reverse Engineering-Frameworks für elektronische Schaltungen interessiert sind, Sie können dies tun, indem sie den Anweisungen folgen das teilen wir unten.

HAL kann auf zwei Arten installiert werden in Ubuntu und Derivaten, Der erste von ihnen unterstützt uns vom Repository aus der Anwendung (Gültig nur für Ubuntu 18.04).

diese Wir können es mit Hilfe eines Terminals zum System hinzufügen (Sie können es mit den Tastenkombinationen Strg + Alt + T öffnen.) Darin geben wir die folgenden Befehle ein.

Zuerst fügen wir aus dem Repository Folgendes hinzu:

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

Wir aktualisieren die Pakete und die Liste der Repositorys mit:

sudo apt-get update

Anschließend installieren wir die Anwendung auf unserem System, indem wir den folgenden Befehl eingeben:

sudo apt install hal-reverse

Die andere Installationsmethode ist das Kompilieren der Anwendung im System. Dazu müssen wir den HAL-Code mit Hilfe eines Terminals herunterladen.

Zuerst tippen wir:

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

Jetzt Wir werden die notwendigen Abhängigkeiten installieren:

./install_dependencies.sh

Und wir kompilieren den Code mit:

mkdir build && cd build

cmake ..

make

Sobald die Kompilierung abgeschlossen ist, führen wir die Installation durch mit:

make install

Schließlich kann die Dokumentation und andere Informationen konsultieren über HAL im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.