首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CodeQL扫描JAR文件

CodeQL扫描JAR文件
EN

Stack Overflow用户
提问于 2021-12-14 18:18:01
回答 2查看 425关注 0票数 1

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

从我收集到的信息来看,Java似乎包含了一个用于CodeQL代码的自动构建器,并将为我构建这些项目。我正在尝试扫描已经从Maven中央存储库编译的项目。

问题:

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

谢谢你的洞察力!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-14 18:39:12

据我所读,它似乎不适用于编译后的类。您将需要src代码,无论它是作为一个(Jar,然后您需要在处理之前解压)存在,还是作为一个Github项目存在。

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

票数 0
EN

Stack Overflow用户

发布于 2022-03-05 16:49:32

正如在另一个答案中提到的,对于Java,CodeQL在编译期间观察结果并从它创建一个数据库。因此,不可能从包含已编译类的JAR构建数据库。但是,可以在项目中使用编译过的类(例如,以Maven依赖关系或JDK使用的形式),CodeQL将记录这些类所使用的信息,但它无法深入了解这些类的功能。这意味着,除非CodeQL显式地对其建模,否则它们将无法获得数据流或污染流,请参阅支持的框架列表

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

lgtm.com是由Semmle拥有的,该公司最初创建了CodeQL,后来成为由GitHub获得

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70353748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档