如何運行Joern中的script

這篇博客接上一篇的內容,總結一下怎麼運行Joern自帶的一些示例性的script。

按照這裏的介紹:https://joern.io/docs/shell/,當我們在Joern的shell中用loadCpg("cpg.bin")這種方法加載Code Property Graph後,可以直接運行諸如:

cpg.runScript("general/pdg.sc")

這樣的命令,來加載並運行腳本,例如上面這個可以生成Program Dependency Graph。但是當我嘗試這樣運行的時候,發現會報類似這樣的錯:

java.nio.file.NoSuchFileException: Script [/tmp/sl_scripts8771297126732976873/scripts/general/pdg.sc] was not found.

這個似乎也很好理解啊,我也沒在哪看見過有pdg.sc這個文件的。

仔細看了看,發現了原因,如果按照這裏的介紹:https://joern.io/docs/installing/,從binary直接安裝,就壓根不會有scripts文件夾,需要選擇:Building from Source Code這種方式,按照網頁中的步驟安裝好以後,可以看到出現了一個scripts文件夾。

但如果再次運行上面的命令,還是報一樣的錯。試了試改成絕對路徑,例如:

cpg.runScript("/home/yu/Projects/JoernSource/joern/scripts/graph/pdg.sc")

大家注意改成自己對應的目錄。發現這樣就可以正常運行這個script了,嘗試了一下其他的script,發現都可以正常運行。(另外需要指出的一個小問題是,官網教程中的路徑基本都是錯的,例如要生成CFG,官網說要運行:cpg.runScript("general/cfgToDot.sc"),但實際上這個cfgToDot.sc是在這個目錄scripts/graph下,不得不說,這些官網的文檔,質量都太差了。)

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