欢迎来到 Franklin-Qi 的世界

Max
Min

代码扫描工具TScanCode

引入开源工具TscanCode对源代码进行静态扫描,开发人员对工具扫描的问题进行有针对性的分析及处理。

一、TScanCode安装

代码仓库为:https://github.com/Tencent/TscanCode, 我们可以自己下载下来编译,
也可以使用腾讯预编译好的可执行文件(代码仓库的 release 目录)。简单起见,我们直接使用预编译好的文件就行。

第一种:
$ git clone https://github.com/Tencent/TscanCode.git
$ cd TscanCode/release/linux/
$ unzip TscanCodeV2.14.24.linux.zip 
$ cd TscanCodeV2.14.24.linux/TscanCodeV2.14.2395.linux
$ chmod a+x tscancode 
$ echo "PATH=$PATH:$(pwd)" >> ~/.bashrc
$ source ~/.bashrc

第二种,建议使用:
cd trunk/
make
修改cfg/cfg.xml  #cfg.xml 配置不当,可能导致检测结果为空,建议value="0"的再开启一些

二、扫描规则与配置

2.1 检测问题列表

代码安全静态扫描工具TscanCode主要能够发现的问题如下:
1、自动变量检查: 返回自动变量(局部变量)指针;
2、越界检查:数组越界返回自动变量(局部变量)指针;
3、类检查:构造函数初始化;
4、内存泄露检查;
5、空指针检查;
6、废弃函数检查;

2.2 扫描规则配置

代码安全静态扫描工具TscanCode支持多平台运行,包括Linux、Windows版本,在Linux下可通过cfg/cfg.xml对扫描的规则进行配置,
其中通过设置value=0则禁用,value=1则启用。

三、 静态扫描过程

3.1 配置扫描规则

根据需要定制扫描规则,编辑2.2 所述的规则配置文件cfg/cfg.xml,或直接使用默认的扫描规则。

3.2 准备扫描对象

将源代码放到指定路径下${SRC_CODE}(路径中不能包含root文件夹,TscanCode特殊性)。
如,export SRC_CODE=~/rpmbuild/kylin-scanner/

3.3 执行代码扫描

进到tscancode安装目录,这里为./trunk/目录。
执行./tscancode --xml --enable=all -q ${SRC_CODE} >scan_result.xml 2>&1;

TscanCode会将结果按照固定的XML格式写入文件中。

3.4 分析扫描结果

选择Excel工具打开XML报告(为了处理更直观),在左侧插入一列处理情况。
开发人员根据报告对代码上下文进行分析,判断是否为工具误报。
对于确认为问题的代码,由开发人员处理后重新进行代码安全静态扫描,直到问题关闭。

参考:

posted on 2020-11-09 14:11  yusq77  阅读(5780)  评论(0编辑  收藏  举报

导航