CodeQL正在扫描JAR文件



我刚刚开始使用CodeQL,在扫描Python项目时取得了很多成功。现在,我开始扫描Java项目,并且很难扫描预编译的项目。

据我所知,CodeQLCLI似乎包括一个Java代码的自动生成器,并将为我构建项目。我正在尝试扫描已经从Maven中央存储库编译的项目。

问题:

  1. 是否可以使用CodeQL扫描JAR文件中包含的已编译Java源代码(即字节码、类文件(
  2. 如果是,我如何调用这些属性来从CLI扫描JAR文件

感谢您的真知灼见!

正如另一个答案中所提到的,对于Java CodeQL,在编译过程中观察结果并从中创建数据库。因此,不可能从包含编译类的JAR构建数据库。然而,在项目中使用编译后的类是可能的(例如,以Maven依赖项或JDK使用的形式(,CodeQL会记录这些类的使用信息,但它不了解这些类的作用。这意味着没有数据流或污染流可供它们使用,除非CodeQL明确建模,请参阅支持的框架列表。

但是,由于您的计划是对Maven Central的项目运行查询,因此从lgtm.com获取数据库或直接使用lgtm.com上的查询控制台可能最容易,另请参阅文档。对于大多数项目,lgtm.com能够自己构建项目。

lgtm.com由Semmle所有,Semmle最初创建了CodeQL,并被GitHub收购。

从我所读到的内容来看,它似乎不适用于已编译的类。您将需要src代码,无论它是作为(Jar,然后您需要在处理之前解压缩(还是Github项目存在。

通常在运行过程中,您会提供构建项目的方法,例如--language=java --command='mvn clean install -DskipTests'<--这需要源代码。

相关内容

  • 没有找到相关文章

最新更新