Joern的安装与使用
一.前言
最近在研究C/C++源码的漏洞挖掘,需要用到Joern
工具将源码转换为图来分析,于是开始寻找关于Joern
的安装教程。首先是按照别人的博客安装,发现大部分依赖库都是远古版本,根本安装不了,于是找官方教程,找到了一个官方文档(准确来说应该是旧的官方文档,文档底部显示2014
年),安装的版本为joern-0.3.1
,安装过程巨麻烦,且同样存在依赖库找不到的问题。于是就想写下这篇博客,初衷就是希望大家在安装Joern
时可以少走弯路,避免我踩过的坑,减少不必要的时间浪费!
二.关于Joern的简介
Joern
是一个用于分析基于C/C++
项目的开源工具,它不需要进行编译和依赖库就可以从整个项目或者单个源文件甚至函数代码片段中提取每个函数的代码属性图。
三.安装
安装按照Joern官方安装文档(2021),这里就不一一赘述。
下面主要介绍安装遇到的错误
及解决办法。
错误1:如果在导入代码时出现如下错误,说明java
版本不对应(这里有个坑,官方文档指明java
版本为 Java 8 或更高,但在实际测试中,Java 8依然会报错,本人就是因为这个java
版本问题卡了半天)。可以将安装java 11
。
java
版本对应关系:
49.0 = Java 5
50.0 = Java 6
51.0 = Java 7
52.0 = Java 8
53.0 = Java 9
54.0 = Java 10
55.0 = Java 11
56.0 = Java 12
57.0 = Java 13
58.0 = Java 14
安装java11
:
sudo apt-get install openjdk-11-jre
切换默认java
版本:
sudo update-alternatives --config java
错误2:在生成AST
、CPG
、CFG
等图时显示无Graphviz
:
安装graphviz
:
sudo apt install graphviz
输出版本,验证安装:
dot -version