HAL これは、デジタル電子回路のリストを分析するための統合環境です。、エステ 包括的なリバースエンジニアリングおよび操作フレームワークです 効率、スケーラビリティ、および移植性に焦点を当てたドアレベルのネットリスト用。 HAL プラグインシステムが付属しています completo これにより、カーネルに任意の機能を導入できます。
面白い HALによる GUIで回路を表示および分析し、操作できるようにすることです。 Pythonスクリプトを使用します。 スクリプトでは、デジタル電子回路のリバースエンジニアリングに役立つグラフ理論演算を実装する関数の添付の「標準ライブラリ」を使用できます(これらの関数を使用すると、さまざまなデザインパターンをヒューリスティックに検出し、複数行のスクリプトで単純な難読化を取り除くことができます) 。
図書館 IDEでのプロジェクト管理のためのクラスも含まれています。 これは、接続の分析と検査用のプラグインを開発するときに使用できます。 パーサーは、VHDLおよびVerilogハードウェア記述言語用に提供されています。
この環境は、いくつかのドイツの大学によって開発されています、C ++、Qt、およびPythonで記述され、MITライセンスの下でリリースされています。
その主な特徴の 次の点が際立っています。
- ネットリストアイテムとそれらの接続の指示された自然なグラフィック表現。
- カスタムドアライブラリのサポート。
- 最適化されたC ++カーネルによる高性能
- モジュール性-効率的なネットワークリストの分析と操作のために独自のC ++プラグインを作成します(たとえば、グラフィックアルゴリズムを使用)
- ネットワークリストの視覚的検査とインタラクティブな分析を可能にする機能豊富なGUI
- ネットリストアイテムを探索的に操作し、GUIからプラグインを操作するための組み込みのPythonシェル
HALバージョン2.0.0について
今 この環境はバージョン2.0.0にあります その中で VHDLおよびVerilogアナライザーが改善されました。 目標ベースの構成を使用するように更新されたCMakeビルドシステムとともに。
さらに 階層化とモジュール化のサポートが追加されたことを強調します。 また、追加の分離ビューと新しい設計システムもあります。
その他の変更点 この新しいバージョンで言及されている:
- ドアライブラリシステムの変更
- BDDがブール関数に置き換えられました
- ゲートタイプの内部表現の主な変更
- LUT、フリップフロップ、ラッチ、および組み合わせゲートタイプを区別できます
- ラッチとフリップフロップで、イネーブル、クロック、設定、リセットなどの特別なシーケンシャル入力を指定できるようになりました。
- JSONゲートライブラリがfreedomファイルに置き換えられました
- 簡素化されたプラグインシステム
- Igraphライブラリが含まれています
- GUIメジャーレビュー
Ubuntuとその派生物にHALをインストールする方法は?
このリバースエンジニアリングフレームワークを電子回路にインストールすることに関心のある人は、 彼らは指示に従うことによってそれを行うことができます 以下で共有します。
HAL XNUMXつの方法でインストールできます Ubuntuとその派生物では、 最初のものはリポジトリから私たちをサポートしています アプリケーションの(Ubuntu18.04でのみ有効).
この ターミナルの助けを借りてシステムに追加することができます (ショートカットキーCtrl + Alt + Tで開くことができます)そして、その中に次のコマンドを入力します。
まず、リポジトリから次のように追加します。
sudo add-apt-repository ppa:sebastian-wallat/hal
パッケージとリポジトリのリストを次のように更新します。
sudo apt-get update
次に、次のコマンドを入力して、システムにアプリケーションをインストールします。
sudo apt install hal-reverse
他のインストール方法はコンパイルすることです システム内のアプリケーションの。 このためには、端末を使用してHALコードをダウンロードする必要があります。
まず、次のように入力します。
git clone https://github.com/emsec/hal.git && cd hal
現在 必要な依存関係をインストールします。
./install_dependencies.sh
そして、次のコードをコンパイルします。
mkdir build && cd build cmake .. make
コンパイルが完了したら、次の手順でインストールを実行します。
make install
最後に ドキュメントやその他の情報を参照できます HALについて 次のリンクで。