文章目录
- 一、简介
- 二、环境安装
- 三、使用说明
- 四、其他报错
- UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe6 in position 29: ordinal not in range(128)
- **linux:**
- **windos:**
- 五、安全编程规范
一、简介
Flawfinder是一款开源的关于C/C++静态扫描分析工具,其根据内部字典数据库进行静态搜索,匹配简单的缺陷与漏洞,flawfinder工具不需要编译C/C++代码,可以直接进行扫描分析。
简单快速,最大的有点就是免费,不需要编译。flawfinder工具可以在官网进行下载。
二、环境安装
flawfinder安装比较简单,由于其是基于Python实现的一款工具,所以需要首先安装Python环境,并配置环境变量。
- 如果没有安装ptyhon,可以去官方下载:地址
- 终端输入:pip install flawfinder
- 修改flawfinder代码
① 使用Everything工具,搜索flawfinder,py。
② 在flawfinder,py中搜索“my_input = open(”
修改后如下:
三、使用说明
-
生产csv表格
①到指定文件路径,终端输入:flawfinder --csv > test-result.csv app_main.c
②生成表格如图
-
生产html网页
①到指定文件路径,终端输入:flawfinder --html > test-result.html app_main.c
②生成网页如图
-
步骤
-
扫描当前工程目录,并显示问题代码。
flawfinder --html > test-result.html --context .
–context 显示问题代码
四、其他报错
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe6 in position 29: ordinal not in range(128)
-
错误原因
提示中的“ordinal not in range(128)”,意思是,字符不在128范围内,即说明不是普通的ASCII字符,超出处理能力了。 -
解决方法
找到flawfinder程序文件,用文本编辑器打开,在文件抬头加入以下代码。
linux:
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
windos:
import importlib,sys
importlib.reload(sys)
五、安全编程规范
-
安全编程操作方法
-
大佬的网站 干货满满