Joern是屡获殊荣的开源平台,用于基于C / C ++的基于查询的强大分析。它使用基于Scala的特定于域的查询语言来为漏洞挖掘大型代码库,并为代码属性图提供参考实现。凭借其模糊的解析方法,它特别适合于机器学习应用程序。 Joern是ShiftLeft上商业SAST和代码探索产品的基础。
代码属性图(CPG)是设计用于代码查询的中间代码表示形式。它提倡的核心思想是将多个不同的程序表示形式合并到一个联合的图形数据结构中,并允许将查询表达为图形遍历。 CPG在2014年提出的初始格式中,为C / C ++程序提供了语法信息,控制流信息和数据流。后来,它被进一步概括为承载多种不同的编程语言和更高级别的代码表示。
约恩是用Scala写的。请确保已安装Java虚拟机(版本8或更高版本)。支持Linux,MacOSX和FreeBSD。 Joern尚未在Windows上经过测试。
██╗██████╗███████╗██████████╗██╗
██║██╔═══██╗██╔════╝██╔══██╗████╗██║
██║██║██║█████╗██████╔╝██╔██╗██║
████║██║██║██╔══╝██╔══██╗██║╚██╗██║
╚█████╔╝╚██████╔╝███████╗██║ ██║██║ ╚████║
╚════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝