代碼屬性圖之-Joern安裝

一 序

代碼屬性圖是結合AST,控制流圖,數據流圖而形成的新的一種圖示結構,用於在一張圖中綜合藐視程序的運行過程,數據傳遞過程等。(本文僅限學術交流,轉載標明出處),感謝JacksonZyy的安裝分析過程。

二 安裝

首先是官網的安裝方法,如下:

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

其次給出我在網上查找的方法:

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)

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了,我並沒有出現上文博主出現的問題,比較幸運吧!

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

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

   注意,在這兒,你要是沒有刪除前面joern的安裝包的話,這個包會命名爲0.3.1.tar.gz.1,如下圖

之後: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

 

  來自 <https://github.com/scrapy/scrapy/issues/2115>

   再運行:sudo python2 setup.py install

   即可正常安裝

   結果:

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

    結果報錯:

起初我還以爲是gremlin位置問題,後來發現上文中的博主已經給出解決方法了

輸入:

   sudo pip install py2neo==2.0

 原來是py2neo版本問題,最新的4.*版本並不能適應這個,需要重新安裝py2neo

 之後再joern-tools目錄下運行joern-lookup:

三 結果

到此,已經正常的安裝好joern了,這個過程中,對一些庫的版本要求比較嚴格,需要給定版本的庫,大家在安裝時一定要注意!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章