HAL 这是一个用于分析数字电子电路列表的集成环境这 是一个全面的逆向工程和操纵框架 适用于侧重于效率,可伸缩性和可移植性的门级网表。 哈尔 带有插件系统 完成 这允许在内核中引入任意功能。
有趣的 由HAL 是它允许在GUI中查看和分析电路并进行操作 使用python脚本。 在脚本中,您可以使用实现图形理论操作的附加功能“标准库”,这些功能可用于逆向工程数字电子电路(使用这些功能,您可以试探性地检测各种设计模式,并通过多行脚本来消除简单的混淆) 。
图书馆 它还包括IDE中用于项目管理的类, 可以在开发用于连接分析和检查的插件时使用。 提供了用于VHDL和Verilog硬件描述语言的解析器。
这种环境是由几所德国大学开发的,以C ++,Qt和Python编写,并在MIT许可下发布。
其主要特点 以下突出:
- 网表项目及其连接的自然图形表示形式。
- 支持自定义门库。
- 优化的C ++内核带来高性能
- 模块化-编写您自己的C ++插件,以进行有效的网络列表分析和处理(例如,使用图形算法)
- 功能丰富的GUI,可对网络列表进行可视检查并进行交互式分析
- 内置的Python shell,用于与网表项目进行探索性交互以及与GUI中的插件进行交互
关于HAL 2.0.0版
现在 此环境的版本为2.0.0 在其中 VHDL和Verilog分析仪得到了改进, 以及已更新为使用基于目标的配置的CMake构建系统。
还 需要强调的是,添加了对层次结构和模块化的支持, 以及其他隔离视图和新的设计系统。
其他变化 在此新版本中提到:
- 门图书馆系统的变更
- BDD替换为布尔函数
- 闸门类型的内部表示形式的重大变化
- 允许区分LUT,触发器,锁存器和组合门类型
- 现在,您可以在锁存器和触发器中指定特殊的顺序输入,例如使能,时钟,配置和复位。
- JSON Gate库替换为自由文件
- 简化的插件系统
- 包括Igraph库
- GUI专业评论
如何在Ubuntu及其衍生产品上安装HAL?
对于那些有兴趣安装此电子电路逆向工程框架的人, 他们可以按照说明进行操作 我们在下面分享。
HAL 可以两种方式安装 在Ubuntu及其衍生版本中, 第一个是从资源库中为我们提供支持 的应用程序(仅对Ubuntu 18.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
最后 可以查阅文档和其他信息 关于哈尔 在下面的链接中。