HAL is een geïntegreerde omgeving voor de analyse van de lijst van digitale elektronische schakelingenis is een alomvattend raamwerk voor reverse engineering en manipulatie voor netlists op deurniveau die zich richten op efficiëntie, schaalbaarheid en draagbaarheid. HAL wordt geleverd met een plug-insysteem completo die het mogelijk maakt om willekeurige functionaliteiten in de kernel te introduceren.
Het interessante door HAL is dat het toelaat om het circuit in de GUI te zien en te analyseren en het te manipuleren met behulp van python-scripts. In scripts kunt u de bijgevoegde "standaardbibliotheek" met functies gebruiken die grafentheorie-bewerkingen implementeren, handig voor reverse engineering van digitale elektronische schakelingen (met deze functies kunt u heuristisch verschillende ontwerppatronen detecteren en eenvoudige versluieringen verwijderen met een script op meerdere regels) .
De bibliotheek het bevat ook lessen voor projectbeheer in de IDE, die kunnen worden gebruikt bij het ontwikkelen van plug-ins voor verbindingsanalyse en inspectie. Er zijn parsers beschikbaar voor de VHDL- en Verilog-hardwarebeschrijvingstalen.
Deze omgeving is ontwikkeld door verschillende Duitse universiteiten, geschreven in C ++, Qt en Python en vrijgegeven onder de MIT-licentie.
Van de belangrijkste kenmerken de volgende vallen op:
- Gerichte natuurlijke grafische weergave van netlijstitems en hun verbindingen.
- Ondersteuning voor aangepaste deurbibliotheken.
- Hoge prestaties dankzij geoptimaliseerde C ++ -kernel
- Modulariteit - Schrijf uw eigen C ++ plug-ins voor efficiënte analyse en manipulatie van netwerklijsten (bijvoorbeeld met behulp van grafische algoritmen)
- Een veelzijdige GUI die visuele inspectie van de netwerklijst en interactieve analyse mogelijk maakt
- Een ingebouwde Python-shell voor exploratieve interactie met netlist-items en voor interactie met plug-ins uit de GUI
Over HAL-versie 2.0.0
Op dit moment deze omgeving is in versie 2.0.0 waarin VHDL- en Verilog-analysers zijn verbeterd, samen met het CMake-buildsysteem dat is bijgewerkt om op doelen gebaseerde configuraties te gebruiken.
ook het valt op dat ondersteuning voor hiërarchisatie en modularisatie werd toegevoegd, evenals een extra isolatieweergave en een nieuw ontwerpsysteem.
Van de andere veranderingen vermeld in deze nieuwe versie:
- Wijzigingen aan het deurbibliotheeksysteem
- BDD is vervangen door booleaanse functies
- Grote veranderingen in de interne weergave van poorttypes
- Maakt onderscheid mogelijk tussen LUT's, flip-flops, latches en combinatorische poorttypes
- In Latches en Flip-flops kunt u nu speciale opeenvolgende ingangen specificeren, zoals inschakelen, klokken, configureren en resetten.
- JSON-poortbibliotheken vervangen door vrijheidsbestanden
- Vereenvoudigd plug-insysteem
- Igraph-bibliotheek inbegrepen
- GUI Major recensie
Hoe installeer ik HAL op Ubuntu en derivaten?
Voor degenen die geïnteresseerd zijn in het installeren van dit reverse engineering-raamwerk voor elektronische schakelingen, ze kunnen het doen door de instructies te volgen die we hieronder delen.
HAL kan op twee manieren worden geïnstalleerd in Ubuntu en derivaten, de eerste ondersteunt ons vanuit de repository van de applicatie (Alleen geldig voor Ubuntu 18.04).
Oosten we kunnen het met behulp van een terminal aan het systeem toevoegen (Je kunt het openen met de sneltoetsen Ctrl + Alt + T) en daarin gaan we de volgende commando's typen.
Eerst gaan we toevoegen vanuit de repository met:
sudo add-apt-repository ppa:sebastian-wallat/hal
We werken de pakketten en de lijst met repositories bij met:
sudo apt-get update
En we gaan verder met het installeren van de applicatie op ons systeem door de volgende opdracht te typen:
sudo apt install hal-reverse
De andere installatiemethode is door te compileren van de applicatie in het systeem. Hiervoor moeten we de HAL-code downloaden met behulp van een terminal.
Eerst gaan we typen:
git clone https://github.com/emsec/hal.git && cd hal
nu we gaan de nodige afhankelijkheden installeren:
./install_dependencies.sh
En we gaan verder met het compileren van de code met:
mkdir build && cd build cmake .. make
Zodra de compilatie is voltooid, gaan we verder met het uitvoeren van de installatie met:
make install
Eindelijk kan de documentatie en andere informatie raadplegen over HAL In de volgende link.