HAL, uma estrutura de engenharia reversa para circuitos eletrônicos digitais

hal_screenshot

HAL é um ambiente integrado para a análise da lista de circuitos eletrônicos digitaisé é uma estrutura abrangente de engenharia reversa e manipulação para netlists de nível de porta que se concentram em eficiência, escalabilidade e portabilidade. HAL vem com um sistema de plugins completo que permite introduzir funcionalidades arbitrárias no kernel.

O interessante por HAL é que permite ver e analisar o circuito na GUI e manipulá-lo usando scripts python. Em scripts, você pode usar a "biblioteca padrão" anexada de funções que implementam operações de teoria de grafos, útil para engenharia reversa de circuitos eletrônicos digitais (usando essas funções, você pode detectar heuristicamente vários padrões de design e remover obstruções simples com um script em várias linhas) .

A biblioteca também inclui classes para gerenciamento de projetos no IDE, que pode ser usado ao desenvolver plug-ins para análise e inspeção de conexão. Analisadores são fornecidos para as linguagens de descrição de hardware VHDL e Verilog.

Este ambiente é desenvolvido por várias universidades alemãs, escrito em C ++, Qt e Python e lançado sob a licença MIT.

De suas principais características o seguinte se destaca:

  • Representação gráfica natural direcionada de itens da netlist e suas conexões.
  • Suporte para bibliotecas de portas personalizadas.
  • Alto desempenho graças ao kernel C ++ otimizado
  • Modularidade - Escreva seus próprios plug-ins C ++ para análise e manipulação eficientes de listas de rede (por exemplo, usando algoritmos de gráficos)
  • Uma GUI rica em recursos que permite a inspeção visual da lista de rede e análise interativa
  • Um shell Python embutido para interagir explorativamente com itens da netlist e para interagir com plug-ins da GUI

Sobre HAL versão 2.0.0

Atualmente a este ambiente está em sua versão 2.0.0 em que Os analisadores VHDL e Verilog foram aprimorados, junto com o sistema de compilação CMake que foi atualizado para usar configurações baseadas em metas.

também destaca-se que o suporte para hierarquização e modularização foi adicionado, bem como uma visão de isolamento adicional e um novo sistema de design.

Das outras mudanças mencionado nesta nova versão:

  • Mudanças no sistema de biblioteca de portas
  • BDD substituído por funções booleanas
  • Principais mudanças na representação interna dos tipos de portão
  • Permite a diferenciação entre LUTs, flip-flops, latches e tipos de portas combinacionais
  • Em travas e flip-flops, agora você pode especificar entradas sequenciais especiais, como ativar, relógio, configurar e redefinir.
  • Bibliotecas de gate JSON substituídas por arquivos freedom
  • Sistema de plugin simplificado
  • Biblioteca Igraph incluída
  • Revisão principal da GUI

Como instalar o HAL no Ubuntu e derivados?

Para aqueles que estão interessados ​​em instalar esta estrutura de engenharia reversa para circuitos eletrônicos, eles podem fazer isso seguindo as instruções que compartilhamos abaixo.

HAL pode ser instalado de duas maneiras no Ubuntu e derivados, o primeiro está nos apoiando do repositório do aplicativo (Válido apenas para Ubuntu 18.04).

Esta podemos adicioná-lo ao sistema com a ajuda de um terminal (Você pode abri-lo com as teclas de atalho Ctrl + Alt + T) e nele vamos digitar os seguintes comandos.

Primeiro, vamos adicionar do repositório com:

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

Atualizamos os pacotes e a lista de repositórios com:

sudo apt-get update

E continuamos a instalar o aplicativo em nosso sistema digitando o seguinte comando:

sudo apt install hal-reverse

O outro método de instalação é compilando da aplicação no sistema. Para isso, temos que baixar o código HAL com a ajuda de um terminal.

Primeiro vamos digitar:

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

Agora vamos instalar as dependências necessárias:

./install_dependencies.sh

E continuamos a compilar o código com:

mkdir build && cd build

cmake ..

make

Assim que a compilação terminar, procedemos à instalação com:

make install

Finalmente pode consultar a documentação e outras informações sobre HAL no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.