深入浅出Joern(三)Joern和Neo4j常用语法大全

深入浅出Joern(三)Joern和Neo4j常用语法大全

💡 原文中文,约9500字,阅读约需23分钟。
📝

内容提要

前两篇文章介绍了Joern技术和CPG的设计原理和实际表现。作者在研究Joern和Neo4j时遇到问题,因为对OverflowDB、Scala和Cypher不熟悉,相关文档无法解决问题。为了方便查阅,作者记录了Joern和Neo4j的实用语法和范例。

🎯

关键要点

  • 前两篇文章介绍了Joern技术的设计原理和CPG的实际表现。
  • 作者在研究Joern和Neo4j时遇到问题,因对OverflowDB、Scala和Cypher不熟悉。
  • 作者记录了Joern和Neo4j的实用语法和范例,作为查阅字典。
  • Joern的节点获取方法包括cpg.method.name和cpg.call.name等。
  • 可以通过Joern的点连接获取对应节点连接的其他节点。
  • Joern支持多种节点类型,如cpg.configFile、cpg.identifier等。
  • Joern提供了多种过滤器,如where、filter、and、or等。
  • Joern的结果返回可以通过map、clone、dedup等方法处理。
  • 数据流分析可以通过reachableBy和reachableByFlows等函数实现。
  • Neo4j的语法相对复杂,但在某些情况下可视化图结构更具优势。
  • Neo4j支持创建、删除实体和关系,使用match和create等语句。
  • 可以通过match查询实体和关系,并使用where进行条件过滤。
  • Neo4j支持路径搜索,包括单条最短路径和多条最短路径的查询。
  • merge和optional match用于处理关系的创建和匹配。
🏷️

标签

➡️

继续阅读