[英]CodeQL Scanning JAR Files
我刚刚开始使用 CodeQL,并且已经成功扫描了 Python 个项目。 现在,我开始扫描 Java 个项目,我很难扫描预编译的项目。
从我收集到的信息来看,CodeQL CLI 似乎包括一个用于 Java 代码的自动构建器,并将为我构建项目。 我正在尝试扫描已从 Maven 中央存储库编译的项目。
问题:
感谢您的任何见解!
正如另一个答案中提到的,对于 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'
<-- 这需要源代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.