5 ms·
Have not used it myself but looks like there is StackAnalyzer[0]. Have done it myself by adding analysis to angr[1] but it pretty much boils down to trying to s
by Atlas22 3y ago
Have not used it myself but looks like there is StackAnalyzer[0]. Have done it myself by adding analysis to angr[1] but it pretty much boils down to trying to solving the halting problem for many large programs (an unbounded recursion or alloca makes the max stack size infinite)
[0] https://www.absint.com/stackanalyzer/index.htm https://www.absint.com/stackanalyzer/index.htm
[1] https://angr.io/ https://angr.io/
- hra5th 3y agoFor rust code, I have found https://github.com/japaric/cargo-call-stack https://github.com/japaric/cargo-call-stack to be the best available option, as it does take advantage of how Rust types are implemented in LLVM-IR to handle function pointers / dynamic dispatch a little better. An even better solution would try to use MIR type information as well to further narrow down targets of dynamic calls in a Rust-specific way, but no such tool exists that I know of.