Joern是一个源码分析工具,可以分析程序的源码,生成代码属性图。然后可以根据代码属性图,提取你想要的程序的信息,比如控制流图,数据流图等等。
这个工具主要是这篇论文的结果:
https://fabs.codeminers.org/papers/2014-ieeesp.pdf
老版本安装
官方链接:https://joern.readthedocs.io/en/latest/installation.html
老版本安装的话,可能会遇到的问题是neo4j的老版本比较难下载。一些博客也给出了解决方案:https://blog.csdn.net/water_likly/article/details/88415127
新版本安装
官方链接:https://docs.joern.io/installation
按照官方文档安装,基本没出现什么问题。
下面简单介绍一下安装。
依赖库
Java 8 :http://openjdk.java.net/install/- Java 11 :http://openjdk.java.net/install/
- python 3:https://www.python.org/downloads/
- python库cpgclientlib
安装java 11
apt-get install openjdk-11-jdk
安装一下cpgclientlib
这个库
pip3 install cpgclientlib
或者源码安装这个库
git clone https://github.com/ShiftLeftSecurity/codepropertygraph.git
cd codepropertygraph/cpgclientlib
sudo python3 setup.py install
安装方式
- 安装预先build好的二进制程序(比较简单,推荐使用,如果这个不行再用第二种源码安装)
- 源码安装
安装预先build好的二进制程序
wget https://github.com/ShiftLeftSecurity/joern/releases/latest/download/joern-cli.zip
unzip joern-cli.zip
测试一下是否安装成功
源码安装
git clone https://github.com/ShiftLeftSecurity/joern.git
cd joern
sbt stage
测试一下安装结果
cd joern
./joern
设置一下分配的内存大小
在命令行输入下面这行代码,下面的代码表示分配4g的内存给jvm,当然你也可以分配别的大小的内存。
export _JAVA_OPTS="-Xmx4G"