Flawfinder在Python2和Python3环境下对代码进行扫描方法

1. Flawfinder

  Flawfinder是一款开源的关于C/C++静态扫描分析工具,其根据内部字典数据库进行静态搜索,匹配简单的缺陷与漏洞。

  官网:https://dwheeler.com/flawfinder/#downloading

2. Flawfinder的安装

  由于历史原因,Python有两个大的版本分支,Python2和Python3,又由于一些库只支持某个版本分支,所以需要在电脑上同时安装Python2和Python3。对于Flawfinder而言,其是基于 Python2 实现的一款工具,因此其安装及执行均需要在Python2环境下进行,但目前开发中更多地是在使用Python3进行软件开发,所以需要对两个版本的Python进行兼容。

  在Windows系统下,不论python2还是python3,python可执行文件都叫python.exe。在cmd下输入python得到的版本号取决于环境变量里哪个版本的python路径更靠前,其在windows中是按照顺序查找的。比如环境变量里的顺序是:

Flawfinder在Python2和Python3环境下对代码进行扫描方法

  如果想用python2运行一个脚本,又想用python3运行另一个脚本,需要怎么做?来回改环境变量显然很麻烦。

  有两种方法可以对其进行区分。

1) 把两个python.exe进行改名,一个改成python2.exe,一个改成python3.exe。

Flawfinder在Python2和Python3环境下对代码进行扫描方法

 Flawfinder在Python2和Python3环境下对代码进行扫描方法

2)借用py的一个参数来调用不同版本的Python。即,

  • py -2 调用Python2
  • py -3 调用的是Python3

在这种方式下,对于Python扩展包的安装也可以进行区分开来,在各自的环境下进行安装。

当需要python2的pip时:

    `py -2 -m pip install xxx`

当需要python3的pip时:

   ` py -3 -m pip install xxx`

  即,安装Flawfinder时,需要在Python2环境下,运行:

        `py -2 -m pip install flawfinder-2.0.15-py2.py3-none-any.whl`

  “flawfinder-2.0.15-py2.py3-none-any.whl”镜像文件可通过附件进行下载,也可以自行在官网下载最新版本。

3. Flawfinder的使用

  1)将flawfinder文件放在被扫描文件的同级目录下。

  2)在Python2的环境下执行:

  `py -2 flawfinder -m 1 > ****`

  即可对相应代码进行扫描检测。