💡
原文中文,约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用于处理关系的创建和匹配。
🏷️
标签
➡️