修改源代码后不了解如何从AWB扫描

时间:2016-05-26 22:25:14

标签: c fortify fortify-source

我的项目是一个相当小的C项目。从命令行运行 sourceanalyzer 可在大约3分钟内完成翻译和扫描。

文档说如果.fpr是从命令行生成的,我需要从AWB重新扫描,更新项目翻译按钮是灰色的(就是这样)。但是如果我修改源代码,文档说我必须先重新更新翻译才能重新扫描代码,这意味着我必须再次从命令行运行 sourceanalyzer (因为选项是在AWB中显示灰色。)但是,使用 sourceanalyzer 重写.fpr,这意味着我丢失了我在AWB中创建的所有审核和自定义过滤器。

问题1:我是否可以从命令行运行 sourceanalyzer 进行翻译和扫描,而不会丢失我在AWB中创建的审计工作和自定义过滤器?

下一个合乎逻辑的步骤似乎是从AWB创建.fpr。但是,如果我尝试使用AWB使用高级扫描... 启动新项目,则需要一个多小时才能完成生成中间文件 - JtsWrapper.java 步骤。完成后,结果显示0个问题。

问题2:如何使用AWB在不使用Java的C项目上启动新项目?当我选择开始新项目 - >高级扫描,它要求提供Java版本。这是否意味着它认为我的项目是一个Java项目?

这就是我使用 sourceanalyzer 的方式:

sourceanalyzer -clean

sourceanalyzer -64 -b myproj \
           -build-label myproj \
           -build-project myproj \
           -build-version 1.0.0 \
            touchless make -j6 -k 

sourceanalyzer -64 -b myproj \
             -build-label myproj \
             -build-project myproj \
             -build-version 1.0.0 \
             -scan \
             -f myproj.fpr

1 个答案:

答案 0 :(得分:1)

问题1)

创建新扫描时,有两种方法可以保留以前/现有的注释,审核和过滤器。

a)如果您再次扫描并且-f指向具有修改的现有.fpr文件,sourceanalyzer将自动将新结果合并到.fpr中。

b)有一个命令行实用程序可以将两个文件合并在一起:

fprutility -merge -project <old.fpr> -source <new.fpr> -f <merged.fpr>

当你说,&#34;下一个合乎逻辑的步骤似乎是从AWB创建.fpr。&#34;我不同意。能够在命令行生成扫描使该过程可重复且可自动化。 AWB和IDE插件都是sourceanalyzer.exe的前端。

问题2)

我不确定您使用的是什么版本的Fortify SCA,但是当我将高级扫描指向c ++示例项目(<HPE Fortify Install Dir>/Samples/Basic/cpp)时,我不会被问及Java版本(我使用的是版本16.10)

关于命令行参数的一些事情:

  • -64现在自动为多个版本(不确定何时进行切换)
  • -build-label myproj是可选的
  • -build-project myproj是可选的
  • -build-version 1.0.0是可选的