Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/johnbntn/dat
Binary Analysis Framework for Datalog
https://github.com/johnbntn/dat
bap binary-analysis datalog logic-programming ocaml program-analysis
Last synced: 10 days ago
JSON representation
Binary Analysis Framework for Datalog
- Host: GitHub
- URL: https://github.com/johnbntn/dat
- Owner: johnbntn
- License: mit
- Created: 2024-12-12T00:50:14.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2025-01-09T21:03:41.000Z (12 days ago)
- Last Synced: 2025-01-09T22:20:12.596Z (12 days ago)
- Topics: bap, binary-analysis, datalog, logic-programming, ocaml, program-analysis
- Language: OCaml
- Homepage:
- Size: 7.33 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Datalog Analysis Tool (DAT)
## Overview
DAT is a framework for doing program analysis in Datalog. It relies on [BAP](https://github.com/BinaryAnalysisPlatform/bap) to generate Datalog rules and thus supports all architectures supported by BAP.## Installation and Usage
To install the plugin, make sure BAP is downloaded `opam list bap`, then, clone this repository and run `./compile-plugin.sh` to create the BAP plugin.
Once installed run `./dat path/to/file` to create your Datalog facts. Now you can create an analysis, see the `/tests` directory for examples written in [Souffle Datalog](https://souffle-lang.github.io/).
You can also append DAT to your path by running `PATH=$PATH:~/path/to/dat.sh`.
## Facts
`callgraph.facts` enumerates every function call.\
`defs.facts` enumerates every definition (uses ssa).\
`uses.facts` enumerates every use (uses ssa).## Contributing
If you want to extend the tool, start with `gen_info.ml` to understand the source code, then fork and make a PR.