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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?