Joern工具安装使用-Ubuntu

前提:我的电脑Win10,通过连接Linux服务器进行Joern工具的下载。
一、Joern工具
Joern 是一个对源代码、字节码和二进制代码进行稳健分析的平台。它生成代码属性图,一种用于跨语言代码分析的代码图形表示。代码属性图存储在自定义图数据库中。这允许使用以基于Scala的特定领域查询语言制定的搜索查询来挖掘代码。
二、安装
环境:JDK19
① 官网下载JDK压缩包,先在Linux系统中输入命令“uname -r”查看Linux版本(x86_64);
② 在root目录下通过mkdir创建install目录,该目录用来存储需要安装的JDK;
③ 找到压缩包目录,解压缩;

# 解压JDK19
tar -zxvf jdk-19.0.2_linux-x64_bin.tar.gz

④ 解压完毕后通过mv命令将解压后的目录剪切到/root/install目录下;

mv jdk-19.0.2 /root/install

⑤ 配置环境变量
通过vim /etc/profile命令,打开etc目录下的环境变量配置文件profile,按“i”键在最底端输入如下代码:

export JAVA_HOME=/root/install/jdk-19.0.2
export PATH=$JAVA_HOME/bin:$PATH

⑥ 输入完毕后,按“esc”键退出编辑,输入“:wq”保存并退出profile配置文件;
⑦ 更新配置文件;

source /etc/profile

输入Java -version查看是否安装成功,操作如图:
在这里插入图片描述

2.Joern安装

(1) 更新包:apt-get update
(2) 安装unzip以及sudo命令
apt-get install sudo
(3)更新curl版本
sudo apt-get install curl

按照Joern官网安装预构建的二进制文件:

mkdir joern && cd joern # optional
curl -L "https://github.com/joernio/joern/releases/latest/download/joern-install.sh" -o joern-install.sh
chmod u+x joern-install.sh
./joern-install.sh --interactive

(5)跳转到执行目录:

cd joern/joern-cli

(6)测试Joern是否安装成功:输入joern
在这里插入图片描述

三、实例
(1)导入项目(该项目为靶场项目),克隆一个git存储库:

git clone https://github.com/xunil154/VulnerableChat.git

(2)导入项目,命名为“test”
在这里插入图片描述(3)关闭项目并保存修改
在这里插入图片描述
(4) joern-parse 工具

① 分析client.c文件:joern-parse /root/VulnerableChat/src/client.c

在这里插入图片描述
② 进入 joern shell,导入刚才生成的 cpg.bin;
在这里插入图片描述
(5) joern-export 导出 dot 文件;
–repr 参数指定图的类型:ast,cfg,ddg,cdg,pdg,cpg14

# 生成PDG、CFG、AST、CPG文件夹dot文件
joern-export /root/cpg.bin --repr pdg --out /root/result-pdg
joern-export /root/cpg.bin --repr cfg --out /root/result-cfg
joern-export /root/cpg.bin --repr ast --out /root/result
joern-export /root/cpg.bin --repr cpg --out /root/result-cpg

(6) dot 命令画图
-T 参数指定保存的文件类型
每个 .dot 文件生成一个图,可以看 dot 文件的大小,最大的那个文件一般是整个项目的图。
如:将dot文件转化为pdf形式

# PDG
dot -Tpdf -o 2-PDG.pdf  /root/result-pdg/3-pdg.dot
# CPG
dot -Tpdf -o 4-CPG.pdf  /root/result-cpg/client.c/main.dot

(7) 比如生成的main.dot的CPG如下图(截取部分展示):

CFG

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值