BinaryAnalysisPlatform / bap

Binary Analysis Platform
MIT License
2.05k stars 271 forks source link

Examples of Primus execution #1601

Open Hirrolot opened 5 months ago

Hirrolot commented 5 months ago

I've just read about the Primus framework and I'm wondering how can I write my own program analysis (in OCaml) that takes advantage of Primus. Are there any tests/examples that I can look into? Thanks.

ivg commented 4 months ago

There is a whole set of analyses that utilize primus in bap-toolkit, but if you want something more low-level and in OCaml, you can take a look at symbolic executor. In fact, any plugin with a name that starts with primus_ is either a primus component or analysis that utilizes Primus. It's worth noticing that Primus is written in such a way that you can use Primus Lisp as a high-level analysis specification language, so if you look at primus-test plugin (which is not about testing Primus but about using Primus for testing programs), you can see that it has implementation of use-after-free, memchek (like in Valgrind) and many other analyses all implemented in Primus Lisp.