Joern的安装与使用(v1.1.590

Joern v1.1.590

jdk安装(jdk17)

点击jdk下载链接下载

放到要解压的目录下解压

tar xfzv jdk-17_linux-x64_bin.tar.gz

解压后转到jdk目录下输入pwd得到jdk的绝对路径

cd jdk-17.0.9/
pwd

然后配置环境

vim /etc/profile

写入

export JAVA_HOME=/绝对路径      
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

保存退出再:

source /etc/profile

输入 java --version得到

安装成功

安装

下载链接下载joern-cli.zip

放到想要的目录下,解压就行了

unzip joern-cli.zip

解压完输入

./joern-clib/joern

 显示下面这个界面就成功了

 基础使用

控制台使用

先输入help查看命令

 几个常用命令大致功能应该如下:

importCode("example.c") 

importCpg("cpg.bin.zip")

                        都会创建一个新的project

workspace

                        查看所有的project

project

                          查看当前运行的project(没有运行会报错

open

                        打开最后使用的project

close

                        关闭project但不删除

delete

                        关闭project并删除      

 新importCode/importCpg创建了project

如果下次不使用了,记得用delete删除再exit退出

如果直接close退出或直接退,workspace还有这个project存在

 查看cpg的方法可以用cpg.help

命令行使用

#生成cpg.bin————

使用指令 ./joern-cli/joern-parse example.c

 可以看到成功生成了cpg.bin,也给出了cpg.bin的路径

#根据cpg.bin生成相应的图

使用指令./joern-cli/joern-export cpg.bin --repr ast --out out

--repr的参数有:ast|cfg|ddg|cdg|pdg|cpg14

--out参数是自定义的输出文件夹名称(该文件夹不能存在,无需手动创建

可以看到执行指令后,当前目录下有out目录 

打开out可以看到有各种dot文件

使用指令dot -Tpng -o test.png [dot-file-name] 

可以得到名为test.png的图

如下图所示:

 脚本使用

控制台

在README.md中,写了查看所有内部脚本的指令

运行之后得到脚本文件和相应的描述:

上面几个脚本有几个好像用不了,可以自己去scripts目录下看有啥

指令使用格式如下:(路径记得写对

cpg.runScript("xx.sc")

命令行

因为我复现代码只需要用到graph-for-funcs.sc,所以只讲一下这个的使用,其他的可以参考一下别的作者(这个脚本要和joern的版本对应好

devign的作者写了graph-for-funcs.scala脚本,可以通过原作者写的graph-for-funcs.sc下载,他适用的版本好像是joern-cli 1.0.170,下载链接:joern-cliv1.0.170(需要其他版本可以把链接的末尾改成需要的版本

(原作者的是把cpg文件转成graph好像

我用的是一个大佬写的graph-for-funcs.scala,链接

 

可以看到适配的是joernv1.1.590,所以我用的joern-cli v1.1.590

然后虽然她文章里写的input是cpg,但是我用cpg.bin得不到graph,只有用.c文件才可以

她文章里也写了用的指令

一些参考文章

joern下载与画图

http://t.csdnimg.cn/muZsr

  • 16
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值