SySe复现-----测试 2020.6.10
目录
4.第四步:python access_db_operate.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

(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:如下

解决:
anwenyan@grin:~/SySeVR_2020.6.10/Implementation/source2slice$ mkdir cfg_db
再次运行,成功

最后结果:都在cfg_db里

3.第三步:complete_PDG.py
问题:

解决:

最后结果:都在pdg_db里
4.第四步:python access_db_operate.py
问题:

解决:新建dict_call2cfgNodeID_funcID文件夹

最后结果:都在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
错误:

解决:新建那些文件夹
anwenyan@grin:~/SySeVR_2020.6.10/Implementation/source2slice$ mkdir -pv C/test_data/4
再次运行:
输出结果:
理论上是有4个txt文件的
api_slices.txt
pointersuse_slices.txt
arraysuse_slices.txt
integeroverflow_slices.txt

这个只有两,估计是测试代码太少的缘故
7.第七步:python make_label.py
错误1:

重新修改了缩进 再次运行
错误2:

自己想把上一步缺的两个都补上
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:运行还是出错了

肯定是因为新建的那两个文件是空文件导致的
不想再改源代码了
用正式数据试一下
至此,测试数据结束....
正式代码运行见下一篇博客!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)