Fortify常见问题解决方法
内存不足问题
在应用Fortify SCA实施源代码扫描过程中内存不足是分析器(sourceanalyzer)经常报出的一类问题,如下:
扫描过程中:
1、com.a.analyzer.AbortedException: There is not enough memory available
2、to complete analysis.For details on making more memory available;
There were 3 problems with insufficient memory. Results may be incomplete.
因此,我们必须对JVM参数进行调整,增加虚拟器内存大小。
(1)确认安装64位的Fortify SCA程序;(这是一个众所周知的JVM问题,32为虚拟机内存大小及其有限);
(2)安装一个64位的jre,并将其替换HP_FortifyHP_Fortify_SCA_and_Apps_3.80的jre目录(就算你安装了64位的Fortify SCA程序,该程序默认的jre仍然是32位的);
C/C++源码扫描系列- Fortify 篇
环境搭建
本文的分析方式是在 Linux 上对源码进行编译、扫描,然后在 Windows 平台对扫描结果进行分析,所以涉及 Windows 和 Linux 两个平台的环境搭建。
Windows搭建
首先双击 Fortify_SCA_and_Apps_20.1.1_windows_x64.exe 安装
安装完成后,把 fortify-common-20.1.1.0007.jar 拷贝 Corelib 进行,然后需要把 rules 目录的规则文件拷贝到安装目录下的 Coreconfigrules 的路径下,该路径下保存的是Fortify的默认规则库。
Externalmetadata 下的文件也拷贝到 CoreconfigExternalmetadata 目录即可
执行 d 即可进入分析源码扫描结果的IDE.
Fortify SCA乱码解决
1:单文件乱码解决方案
可通过Edit下Set Encoding设置。
2:修改Audit Workbench默认编码
找到d文件(D:devFortifyFortify_SCA_and_Apps_20.1.1Coreprivate-binawbd)在蕞后这一行末添加-Dfile.encoding=utf-8,以规定其eclipse.exe默认使用utf-8编码。
备注:d 在 Audit Workbench 的 d 文件内可找到。
3:修改Fortify集成的eclipse默认编码
添加 fortify 的 eclipse 启动参数 -Dfile.encoding=utf-8