您好,登錄后才能下訂單哦!
小編給大家分享一下HAL是一款什么工具,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
HAL是一款針對網關級網絡設備列表的完整的逆向工程分析套件以及操作框架,該工具專注于提升網絡安全人員的效率、可擴展性和可移植性。HAL附帶了成熟的插件系統,允許安全研究人員在內核中引入任意功能。
除了很多其他的研究項目之外,HAL還被應用于大學安全課程之中:《硬件逆向工程概論》。
1、網絡設備列表及其鏈接的自然有向圖表示;
2、支持自定義網關庫;
3、優化C++核心帶來的高性能;
4、模塊化:可以編寫自己的C++插件來進行有效的網表分析和操作;
5、提供了功能豐富的用戶操作界面,支持可視化檢測以及交互式分析;
6、集成了Python Shell,可用于跟網表元素交互以及訪問GUI接口;
7、該工具(v1.1.0)目前新增了針對Xilinx Unisim、Xilinx Simprim、Synopsys 90nm、GSCLIB 3.0和UMC 0.18μm庫的支持;
HAL的release版本通過ppa發布的。
使用下列命令并通過homebrew安裝HAL:
brew tap emsec/halbrew install hal
運行下列命令下載并安裝HAL:
git clone https://github.com/emsec/hal.git && cd hal./install_dependencies.shmkdir build && cd buildcmakemakemake install
需要使用一個支持OpenMP的編譯器,我們可以通過下列命令安裝:
brew install llvm
然后運行下列命令讓cmake使用我們自定義的編譯器:
cmake .. -DCMAKE_C_COMPILER=/usr/local/opt/llvm/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/opt/llvm/bin/clang++
廣大研究人員可以通過命令“hal -g”來安裝或構建HAL,并啟動GUI界面。使用命令“hal [--help|-h]”可以查看工具所有可用的選項。我們在examples目錄中提供了樣本網表,以及用于分析的樣本庫,位于路徑plugins/example_gate_library。
從examples目錄加載一個代碼庫,并開啟圖形化分析功能。使用整合的Python Shell或Python腳本窗口來與目標進行交互。
我們可以枚舉所有的lookup表,并輸出相關信息:
from hal_plugins import libquine_mccluskeyqm_plugin = libquine_mccluskey.quine_mccluskey()for gate in netlist.get_gates(): if "LUT" in gate.type: print(gate.name + " (id "+str(gate.id) + ", type " + gate.type + ")") print(" " + str(len(gate.input_pin_types)) + "-to-" + str(len(gate.output_pin_types)) + " LUT") boolean_functions = qm_plugin.get_boolean_function_str(gate, False) for pin in boolean_functions: print(" " + pin + ": "+boolean_functions[pin]) print("")
比如說針對fsm.vhd樣本,輸出結果如下:
FSM_sequential_STATE_REG_1_i_2_inst (id 5, type LUT6) 6-to-1 LUT O: (~I0 I1 ~I2 I3 I4 ~I5) + (I0 ~I2 I3 I4 I5)FSM_sequential_STATE_REG_0_i_2_inst (id 3, type LUT6) 6-to-1 LUT O: (I2 I3 I4 ~I5) + (I1 I2) + (I0 I1) + (I1 ~I3) + (I1 ~I4) + (I1 ~I5)FSM_sequential_STATE_REG_0_i_3_inst (id 4, type LUT6) 6-to-1 LUT O: (~I1 ~I2 I3 ~I4 I5) + (I0 I5) + (I0 I4) + (I0 I3) + (I0 I1) + (I0 ~I2)OUTPUT_BUF_0_inst_i_1_inst (id 18, type LUT1) 1-to-1 LUT O: (~I0)OUTPUT_BUF_1_inst_i_1_inst (id 20, type LUT2) 2-to-1 LUT O: (~I0 I1) + (I0 ~I1)FSM_sequential_STATE_REG_1_i_3_inst (id 6, type LUT6) 6-to-1 LUT O: (I0 I2 I4) + (~I1 I2 I4) + (I0 ~I3 I4) + (~I1 ~I3 I4) + (I0 I4 ~I5) + (~I1 I4 ~I5) + (I2 I5) + (I2 I3) + (I1 I5) + (I1 I3) + (I0 I1) + (~I0 I5) + (~I0 I3) + (~I0 ~I1) + (I1 ~I2) + (~I0 ~I2) + (~I3 I5) + (~I2 ~I3) + (~I4 I5) + (I3 ~I4) + (I1 ~I4)
如果你需要在學校或在學術研究條件下使用HAL,請使用下列引用方式來標記并使用該框架:
@misc{hal, author = {{EmSec Chair for Embedded Security}}, publisher = {{Ruhr University Bochum}}, title = {{HAL - The Hardware Analyzer}}, year = {2019}, howpublished = {\url{https://github.com/emsec/hal}},}
大家也可以直接引用原始論文:
@article{2018:Fyrbiak:HAL, author = {Marc Fyrbiak and Sebastian Wallat and Pawel Swierczynski and Max Hoffmann and Sebastian Hoppach and Matthias Wilhelm and Tobias Weidlich and Russell Tessier and Christof Paar}, title = {{HAL-} The Missing Piece of the Puzzle for Hardware Reverse Engineering, Trojan Detection and Insertion}, journal = {IEEE Transactions on Dependable and Secure Computing}, year = {2018}, publisher = {IEEE}, howpublished = {\url{https://github.com/emsec/hal}}}
HAL的開發與發布遵循MIT開源許可證協議。
以上是“HAL是一款什么工具”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。