SySe复现-----测试 2020.6.10

目录

3.1 第一部分:数据切片——测试

0. 准备项目文件

1.第一步:导入测试数据

2.第二步:get_cfg_relation.py

3.第三步:complete_PDG.py

4.第四步:python access_db_operate.py

5.第五步:python  points_get.py

6.第六步:python  extract_df.py

7.第七步:python  make_label.py


参考博客:大神博客

3.1 第一部分:数据切片——测试

0. 准备项目文件

anwenyan@grin:~$ git clone https://github.com/SySeVR/SySeVR.git

重命名,加上时间

anwenyan@grin:~$ mv SySeVR/ SySeVR_2020.6.10/

1.第一步:导入测试数据

(1)如果之前运行过joern,在导入之前需要删除joernIndex,即要删除之前导入的数据(必须要在joern-0.3.1目录下 因为joernIndex在此目录下)

anwenyan@grin:~/JOERN/joern-0.3.1$ sudo rm -rf .joernIndex/

(2)将测试数据(安装joern的测试数据)放入SySe文件夹中:

anwenyan@grin:~/JOERN/joern-0.3.1$ cp -r testCode/ /home/anwenyan/SySeVR_2020.6.10

(3)导入测试数据:

sudo java -jar /home/anwenyan/JOERN/joern-0.3.1/bin/joern.jar /home/anwenyan/SySeVR_2020.6.10/testCode

SySe复现-----测试 2020.6.10_第1张图片

(4)开启neo4j服务器:

anwenyan@grin:~/JOERN/usr/Neo4j/neo4j-community-2.1.8/bin$ sudo ./neo4j console

2.第二步:get_cfg_relation.py

在implementation/source2slice/文件夹中打开终端,执行命令:

 anwenyan@grin:~/SySeVR_2020.6.10/Implementation/source2slice$ python get_cfg_relation.py # 请运行该命令前,检查一下当前环境是否是python2.7

(1)问题1:如下

解决:根据大神博客的分析,直接安装python-igraph

anwenyan@grin:~/SySeVR_2020.6.10/Implementation/source2slice$  sudo apt-get install python-igraph

安装成功后,再次运行:python get_cfg_relation.py

(2)问题2:如下

SySe复现-----测试 2020.6.10_第2张图片

解决:

anwenyan@grin:~/SySeVR_2020.6.10/Implementation/source2slice$ mkdir cfg_db

再次运行,成功

SySe复现-----测试 2020.6.10_第3张图片
 

最后结果:都在cfg_db里

SySe复现-----测试 2020.6.10_第4张图片

 

3.第三步:complete_PDG.py

问题:

SySe复现-----测试 2020.6.10_第5张图片

解决:

SySe复现-----测试 2020.6.10_第6张图片

最后结果:都在pdg_db里

4.第四步:python access_db_operate.py

问题:

SySe复现-----测试 2020.6.10_第7张图片

解决:新建dict_call2cfgNodeID_funcID文件夹

SySe复现-----测试 2020.6.10_第8张图片

最后结果:都在dict_call2cfgNodeID_funcID文件夹里

 

5.第五步:python  points_get.py

直接运行,没有问题

输出结果为:

输出文件在source2slice目录下,有四个输出文件,分别为:

sensifunc_slice_points.pkl

pointuse_slice_points.pkl

arrayuse_slice_points.pkl

integeroverflow_slice_points_new.pkl
 

6.第六步:python  extract_df.py

错误:

SySe复现-----测试 2020.6.10_第9张图片

解决:新建那些文件夹

anwenyan@grin:~/SySeVR_2020.6.10/Implementation/source2slice$ mkdir -pv C/test_data/4

再次运行:SySe复现-----测试 2020.6.10_第10张图片

 

输出结果:

理论上是有4个txt文件的

api_slices.txt

pointersuse_slices.txt

arraysuse_slices.txt

integeroverflow_slices.txt

 

SySe复现-----测试 2020.6.10_第11张图片

这个只有两,估计是测试代码太少的缘故

 

7.第七步:python  make_label.py

错误1:

重新修改了缩进  再次运行

 

错误2:

SySe复现-----测试 2020.6.10_第12张图片

自己想把上一步缺的两个都补上

anwenyan@grin:~/SySeVR_2020.6.10/Implementation/source2slice/C/test_data/4$ touch arraysuse_slices.txt
anwenyan@grin:~/SySeVR_2020.6.10/Implementation/source2slice/C/test_data/4$ touch integeroverflow_slices.txt
anwenyan@grin:~/SySeVR_2020.6.10/Implementation/source2slice/C/test_data/4$ ll
total 24
drwxrwxr-x 2 anwenyan anwenyan 4096 6月  10 11:12 ./
drwxrwxr-x 3 anwenyan anwenyan 4096 6月  10 10:57 ../
-rw-rw-r-- 1 anwenyan anwenyan  612 6月  10 11:07 api_slices_label.pkl
-rw-rw-r-- 1 anwenyan anwenyan  382 6月  10 10:57 api_slices.txt
-rw-rw-r-- 1 anwenyan anwenyan   18 6月  10 11:07 api_slices_vulline.pkl
-rw-rw-r-- 1 anwenyan anwenyan    0 6月  10 11:11 arraysuse_slices.txt
-rw-rw-r-- 1 anwenyan anwenyan    0 6月  10 11:12 integeroverflow_slices.txt
-rw-rw-r-- 1 anwenyan anwenyan  586 6月  10 10:57 pointersuse_slices.txt
anwenyan@grin:~/SySeVR_2020.6.10/Implementation/source2slice/C/test_data/4$ sudo rm -rf api_slices_label.pkl 
anwenyan@grin:~/SySeVR_2020.6.10/Implementation/source2slice/C/test_data/4$ sudo rm -rf api_slices_vulline.pkl 
anwenyan@grin:~/SySeVR_2020.6.10/Implementation/source2slice/C/test_data/4$ 

错误3:运行还是出错了

SySe复现-----测试 2020.6.10_第13张图片

肯定是因为新建的那两个文件是空文件导致的

不想再改源代码了

用正式数据试一下

至此,测试数据结束....

 

正式代码运行见下一篇博客!

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Linux)