@joxean I think a fine-grained callgraph including call site information would break this tie.
Match the call sites in the two binaries, using instruction-level comparisons. You can then differentiate between the two call edges, based on which call site they are from.
I'm happy to share that I just released #MetaCG version 0.5.0 \o/
Besides a number of important bug fixes, we have *finally* reworked some internals that gave us a great performance improvement. For several use cases from minutes to seconds.
Thank you so much to everybody who contributed.
If your curious, check it out at https://github.com/tudasc/MetaCG
@ehmatthes you could roll your own with Python's ast module, I reckon.
Try
CodeQL for this (free for open source). It'd be pretty easy to get call graph nodes and edges and make a GraphViz diagram (or other graph):
https://github.com/github/codeql/discussions/8063
Another option would be TreeSitter, again by
. There's a
crate for making graphs from TreeSitter: https://github.com/tree-sitter/tree-sitter-graph
(I work at GitHub)
Joern also supports Python: https://docs.joern.io/cpgql/calls/
#sourceReading
#callGraph
#graphViz
1ソースから画像化したコールグラフ。
エントリポイントがどこからコールされるかを追記したい気がする。
Draw.ioに画像を読込ませて書く、などはできそうではあるが、手間ではある。
InkScapeで書くとしても、そのファイルを管理することになる。