-
Notifications
You must be signed in to change notification settings - Fork 5
Home
Paper Machete (PM) orchestrates Binary Ninja and GRAKN.AI to perform static analysis on binary targets with the goal of finding exploitable vulnerabilities. PM leverages the Binary Ninja MLIL SSA to extract semantic meaning about individual instructions, operations, register/variable state, and overall control flow. This data is then migrated into GRAKN.AI, a hyper-relational database. We then run queries against the database that are designed to look for indications of common software vulnerability classes.
I'm extremely excited to share our analyzed data from many of the CGC challenge binaries. You can download pre-analyzed CGC CB data from our Amazon S3 bucket! This allows you to skip the analysis step and play with Paper Machete even if you don't have a Binary Ninja license. If you are interested in using our pre-analyzed data, you'll probably want our compiled CGC binaries (239 MB) too. Differences in Clang versions can skew addresses and cause discrepancies between the data set and CGC binaries you compiled yourself.
The files we've provided are minified to reduce size. If you'd like to explore these files in a more human readable "pretty printed" form, you can use a Python one-liner:
python -m json.tool <binary_min.json>
The following pages are designed to get you up and running with PM.
Setup - Get up and running with PM from a fresh install of Ubuntu.
Graql Crash Course - Learn how to ask Grakn questions about your data in this Graql query language crash course!
Writing CWE Queries - Learn how to write your own CWE queries for Paper Machete! (coming soon)
Need for Speed - Learn how to scale PM for large compute clusters and take advantage of that horse power! (coming soon)
Common Paper Machete Problems - Learn how to understand and fix common issues when using PM. (coming soon)
Common GRAKN.AI Problems - Learn about the limitations and quirks of the GRAKN.AI stack and how to overcome them! (coming soon)