深入浅出Joern(四)不常用语法大全

深入浅出Joern(四)不常用语法大全

💡 原文中文,约6500字,阅读约需16分钟。
📝

内容提要

介绍Joern的基础常见节点结构和特殊语法关系,可结合https://cpg.joern.io/进行更深入的了解。

🎯

关键要点

  • Joern实现了很多不常用的语法,文档中未提及的内容也有简洁实用的方式。

  • 基础常见节点结构包括Annotation、Argument、Call、File、Method、Namespace、Parameter、Return和TypeDecl。

  • Annotation节点用于Java中的注解,包含指向其他节点的边。

  • Argument节点包含所有分支跳转循环节点,如if/else/for等。

  • Call节点指向调用节点的参数和条件分支类型参数。

  • File节点包含注释、导入和命名空间等信息。

  • Method节点包含方法的参数、返回值和修饰词等。

  • Namespace节点分为namespace和namespaceBlock,表示命名空间的结构。

  • Parameter节点定义为函数定义的参数,主要与Method节点链接。

  • Return节点对应方法的返回值,包含与条件节点的关系。

  • TypeDecl节点表示类的定义,包含方法和成员变量的信息。

  • 特殊语法关系中,method方法的调用位置和定义节点可以通过cpg进行访问。

➡️

继续阅读