1 目的
学习使用深度学习模型对代码进行系统性的分析
2 运行前准备
2.1 阅读readme.md
-
查看整个工程运转的流程,整体分三步:
-
第一步:生成切片文件
-
第二步:数据预处理
-
第三步:输入数据,利用深度学习模型进行训练
-
查看所需的环境(注意:虽然readme.md中提到的python环境为3.6,但是joern-0.3.1的运行环境为python2.7。因此,在执行第一部分时,请在python2.7的环境下运行source2slice文件夹中的python程序)
2.2 配置运行环境
-
操作系统:建议linux
-
python环境:python2.7和python3.6
-
jdk环境:jdk1.7
-
joern-0.3.1:需要在python2.7的环境下运行
-
待续...
3 开始运行
3.1 第一部分:数据切片——测试
-
第一步:使用joern-0.3.1导入源程序数据(建议先导入一小部分数据,测试能否运行后,再把全部数据导入进去)。关于joern的使用,详情请查看我的另一篇博客:https://blog.csdn.net/God_Jn/article/details/103239267
-
第二步:在implementation/source2slice/文件夹中打开终端,执行命令:
python get_cfg_relation.py # 请运行该命令前,检查一下当前环境是否是python2.7
-
运行get_cfg_relation.py可能遇到的问题:
-
问题1:
-
问题描述:运行get_cfg_relation时,缺少module,请根据报错信息安装相应的module——igraph(搞错了,所需的module不是igraph,而是python_igraph)
-
注意1:安装igraph之前要安装ipython,需要指定ipython的版本进行安装
sudo pip install ipython==5.3.1
-
注意2:再次运行,系统会提示如下信息
-
报错分析:因为igraph由于名字冲突已经弃用了,所以要安装的模块为jgraph,并且把access_db_operate.py中的from igraph import *改为
from jgraph import *
-
注意3:再次运行,系统又报错:
-
注意4:官方有两个igraph库,一个是igraph,一个是python-igraph,安装的module错了
-
-