在经过与该黑神话悟空鏖战长达20天后,终于配置完成joern。
该项目使用老版本的joern,用来解析c和c++语言,构建程序的程序依赖图PDG。该工具生成的是nodes.csv和edges.csv 文件。
其中nodes.csv是这样的:主要包含节点的一些属性。
edges.csv是这样的:主要包含边的类型以及起始和结束位置。
下面让我们来进入正题,如何配置joern:
joern 是直接在 README.md 中给出的地址下载的源码dwk_preprocess/joern_slicer/joern at main · ives-nx/dwk_preprocess · GitHub
在将joern的源码下载后,复制到wukong项目的根目录下。然后将根目录下的./config/dwk.yaml 中的joern_path 修改:
修改完路径后,进入dwk_preprocess中的joern目录中:运行build文件:
sh build.sh
如果报错,那么就是gradle版本问题:
安装指令:
apt update
apt install gradle
之后在运行:
sh build.sh
然后:安装缺失依赖项:
apt-get install graphviz libgraphviz-dev
环境:
pip install pygraphviz 安装
修改文件权限:
chmod +x /root/autodl-tmp/dwk_preprocess/joern_slicer/joern/joern-parse(你的文件路径)
后面运行代码即可。
至此,如果一切顺利的话,那么你将成功解析项目中data下面的c和cpp文件。最后祝你复现顺利!!!