HAL, a reverse engineering framework for digital electronic circuits

hal_screenshot

HAL It is an integrated environment for the analysis of the list of digital electronic circuitsThis is a comprehensive reverse engineering and manipulation framework for door-level netlists that focuses on efficiency, scalability, and portability. HAL comes with a plugin system complete which allows to introduce arbitrary functionalities in the kernel.

The interesting by HAL is that it allows to see and analyze the circuit in the GUI and manipulate it using python scripts. In scripts, you can use the attached "standard library" of functions that implement graph theory operations, useful for reverse engineering digital electronic circuits (using these functions, you can heuristically detect various design patterns and remove simple obfuscations with a script on multiple lines).

Library it also includes classes for project management in the IDE, that can be used when developing plug-ins for connection inspection and analysis. Parsers are provided for the VHDL and Verilog hardware description languages.

This environment is developed by several German universities, written in C ++, Qt, and Python and released under the MIT license.

Of its main characteristics the following stand out:

  • Directed natural graphical representation of netlist items and their connections.
  • Support for custom door libraries.
  • High performance thanks to optimized C ++ kernel
  • Modularity - Write your own C ++ plugins for efficient network list analysis and manipulation (for example, using graphing algorithms)
  • A feature-rich GUI that enables visual inspection of the network list and interactive analysis
  • A built-in Python shell for exploratively interacting with netlist items and for interacting with plugins from the GUI

About HAL version 2.0.0

Today this environment is in its version 2.0.0 in which VHDL and Verilog analyzers were improved, along with the CMake build system that was updated to use goal-based configurations.

As well it is highlighted that support for hierarchization and modularization was added, as well as an additional isolation view and a new design system.

Of the other changes mentioned in this new version:

  • Changes to the door library system
  • BDD replaced with boolean functions
  • Major changes in the internal representation of gate types
  • Allows differentiation between LUTs, flip-flops, latches, and combinational gate types
  • In Latches and Flip-flops you can now specify special sequential inputs such as enable, clock, configure and reset.
  • JSON gate libraries replaced with freedom files
  • Simplified plugin system
  • Igraph library included
  • GUI Major Review

How to install HAL on Ubuntu and derivatives?

For those who are interested in installing this reverse engineering framework for electronic circuits, they can do it by following the instructions that we share below.

HAL can be installed in two ways in Ubuntu and derivatives, the first of them is supporting us from the repository of the application (Valid only for Ubuntu 18.04).

This we can add it to the system with the help of a terminal (You can open it with the shortcut keys Ctrl + Alt + T) and in it we are going to type the following commands.

First we are going to add from the repository with:

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

We update the packages and list of repositories with:

sudo apt-get update

And we proceed to install the application on our system by typing the following command:

sudo apt install hal-reverse

The other installation method is by compiling of the application in the system. For this we have to download the HAL code with the help of a terminal.

First we are going to type:

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

Now we are going to install the necessary dependencies:

./install_dependencies.sh

And we proceed to compile the code with:

mkdir build && cd build

cmake ..

make

Once the compilation is finished, we proceed to perform the installation with:

make install

Finally can consult the documentation and other information about HAL In the following link.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.