最近在研究C/C++源碼的漏洞挖掘,需要用到<code>Joern</code>工具将源碼轉換為圖來分析,于是開始尋找關于<code>Joern</code>的安裝教程。首先是按照别人的部落格安裝,發現大部分依賴庫都是遠古版本,根本安裝不了,于是找官方教程,找到了一個官方文檔(準确來說應該是舊的官方文檔,文檔底部顯示<code>2014</code>年),安裝的版本為<code>joern-0.3.1</code>,安裝過程巨麻煩,且同樣存在依賴庫找不到的問題。于是就想寫下這篇部落格,初衷就是希望大家在安裝<code>Joern</code>時可以少走彎路,避免我踩過的坑,減少不必要的時間浪費!
<code>Joern</code> 是一個用于分析基于<code>C/C++</code>項目的開源工具,它不需要進行編譯和依賴庫就可以從整個項目或者單個源檔案甚至函數代碼片段中提取每個函數的代碼屬性圖。
安裝按照Joern官方安裝文檔(2021),這裡就不一一贅述。
下面主要介紹安裝遇到的<code>錯誤</code>及解決辦法。
錯誤1:如果在導入代碼時出現如下錯誤,說明<code>java</code>版本不對應(這裡有個坑,官方文檔指明<code>java</code>版本為 Java 8 或更高,但在實際測試中,Java 8依然會報錯,本人就是因為這個<code>java</code>版本問題卡了半天)。可以将安裝<code>java 11</code>。

<code>java</code>版本對應關系:
安裝<code>java11</code>:
切換預設<code>java</code>版本:
錯誤2:在生成<code>AST</code>、<code>CPG</code>、<code>CFG</code>等圖時顯示無<code>Graphviz</code>:
安裝<code>graphviz</code>:
輸出版本,驗證安裝: