代码属性图之-Joern安装

一 序

代码属性图是结合AST,控制流图,数据流图而形成的新的一种图示结构,用于在一张图中综合藐视程序的运行过程,数据传递过程等。(本文仅限学术交流,转载标明出处),感谢JacksonZyy的安装分析过程。

二 安装

首先是官网的安装方法,如下:

https://joern.readthedocs.io/en/latest/installation.html#system-requirements-and-dependencies(官网的安装)

其次给出我在网上查找的方法:

(补充:给出安装环境:Vbox 5.2,ubuntu16.04;安装前请先换源并且sudo apt update

另外:安装这个至少需要2G的内存,不足2G,会产生错误,或者无法分析,文件越大,需要的内存越多)

1 安装JDK,参考https://www.cnblogs.com/HHgy/p/7560561.html

   注意,在配置路径环境时,一定好看清准确路径,或者使用 whereis java-8-openjdk-amd64来查找相关路径

2 安装 Neo4J

   wget -O - https://debian.neo4j.org/neotechnology.gpg.key | sudo apt-key add -

   echo 'deb https://debian.neo4j.org/repo stable/' | sudo tee /etc/apt/sources.list.d/neo4j.list

   sudo apt-get update

   sudo apt-get install neo4j=2.1.5(或者sudo apt-get install --fix-missing neo4j=2.1.5)

(补充:这儿安装了neo4j后,发现在后面是无法启动的,我在第二次安装的时候才发现,我是在以前接触neo4j的时候已经做了neo4j的2.1.8版本,大家可以参考https://www.cnblogs.com/zlslch/p/6933127.html  大神的博客,安装2.1.8版本的neo4j,原理上其他版本也没问题)

3 在ant之前,官网说明还需要提供一个lib.tar.gz的包(吐槽下:在西安尝试了好多次都没有成功下载,而在北京那边的同学一次就可以了)

   3.1 这个包会提供给大家,这个也是参考:

https://blog.csdn.net/m0_37799509/article/details/75570851?utm_source=blogxgwz0

   3.2 $ cd joern-0.3.1

         再将lib.tar.gz这个包放在joern-0.3.1中

         $ tar xfzv lib.tar.gz

4 安装ant

   sudo apt-get install ant

5 运行

   $ sudo ant

6 出现下图,就说明ant已经OK了,我并没有出现上文博主出现的问题,比较幸运吧!

代码属性图之-Joern安装_第1张图片

7 创建符号链接

   创建符号链接需要链接joern.jar文件,在6中,我们可以看到在sudo ant后,给出了joern.jar文件的地址,所以我们直接:

alias joern='java -jar /home/shy/joern-0.3.1/bin/joern.jar'

即可

 

8 安装 python-joern

   首先安装依赖:sudo apt-get install python-setuptools python-dev

   (在这儿,我重新安装的时候,遇见了新的错误,如下图:

代码属性图之-Joern安装_第2张图片

该错误的原因是python2.7的版本不对,需要的是2.7.11的python-dev,而不是python2.7.12的。

解决方法:

sudo apt-get install aptitude 

2 sudo aptitude install python-dev,注意,这儿第一步先选N,后面的选Y,这样可以对软件进行降级

具体的参考:https://blog.csdn.net/u013182960/article/details/53431460

   其次:wget https://github.com/fabsx00/python-joern/archive/0.3.1.tar.gz

   注意,在这儿,你要是没有删除前面joern的安装包的话,这个包会命名为0.3.1.tar.gz.1,如下图

代码属性图之-Joern安装_第3张图片

之后:tar xfzv 0.3.1.tar.gz.1 

  最后:$ cd python-joern-0.3.1

            $ sudo python2 setup.py install

            这儿,可能会出现错误

 这是因为相关依赖没有安装

  运行:

  sudo apt-get install python-dev  \
         build-essential libssl-dev libffi-dev \
         libxml2-dev libxslt1-dev zlib1g-dev \
         python-pip

 

  来自

   再运行:sudo python2 setup.py install

   即可正常安装

   结果:

代码属性图之-Joern安装_第4张图片

9 安装joern-tools

  首先安装:graphviz(可视化工具) 

   sudo apt-get install graphviz libgraphviz-dev

   之后:

   git clone https://github.com/fabsx00/joern-tools
   cd joern-tools
   sudo python2 setup.py install

10 验证

    在joern-tools目录下输入joern-lookup

    结果报错:

代码属性图之-Joern安装_第5张图片

起初我还以为是gremlin位置问题,后来发现上文中的博主已经给出解决方法了

输入:

   sudo pip install py2neo==2.0

 原来是py2neo版本问题,最新的4.*版本并不能适应这个,需要重新安装py2neo

 之后再joern-tools目录下运行joern-lookup:

代码属性图之-Joern安装_第6张图片

三 结果

到此,已经正常的安装好joern了,这个过程中,对一些库的版本要求比较严格,需要给定版本的库,大家在安装时一定要注意!

你可能感兴趣的:(代码属性图)