本手册为《Fortify-SCA扫描工具指南》,详细介绍Fortify SCA静态代码分析工具的功能、操作流程及使用技巧,旨在帮助开发者快速掌握并有效应用该工具。
Fortify扫描工具的使用手册对实际工作具有指导意义,并且讲解清晰。
### Fortify SCA分析原理
- **前端**: 第三方IDE、Java插件、C/C++等。
- **后端**:
- 分析引擎: 包括语义模型(Semantic)、全局数据流和控制流配置。
- 结构性:Fortify Manager, STRules builder,自定义规则以及预包装的FORTIFY。
### Fortify SCA分析过程
1. 转换阶段 (Translation)
2. 扫描阶段 (Scan)
转换命令示例:
```
sourceanalyzer-b -clean
sourceanalyzer -b
sourceanalyzer-b -Xmx1250m-scan-f results fpr
```
### Fortify SCA扫描方式
- 插件方式: Eclipse, Visual Studio等。
- 命令行方式: 通过命令执行分析操作。
- 扫描目录方式: 使用Audit Workbench进行文件夹级别的扫描。
- 集成其他工具的方式:如与Ant或Makefile集成使用。
- 编译监控器方式: Fortify SCA Build Monitor。
### 四个步骤
1. 清除阶段
2. 转换阶段
3. 查看阶段(sourceanalyzer -b proName -show-files)
4. 扫描阶段(sourceanalyzer-b proName -Xmx1250m -scan -f proName.fpr)
### 命令行参数说明
查看命令和参数:
```
sourceanalyzer --help
```
输出选项:
- `-format `:控制结果格式。有效选项包括auto,fpr, fvdl 和 text,默认为自动。
转换Java代码示例命令语法:
```
sourceanalyzer -b -cp
```
### 文件指定器
文件指定器描述了如何定位和处理源码文件:
- `dirname`:在命名目录及其子目录中查找所有文件。
- `dxname/Example.java`: 查找名为 Example.java 的特定文件。
- `dxxname/*.java`: 在给定的目录下寻找所有的 .java 文件。
以上是Fortify SCA转换和分析Java源代码的基本命令行语法。