https://github.com/andreafioraldi/daikon_llvm_blocks
https://github.com/andreafioraldi/daikon_llvm_blocks
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/andreafioraldi/daikon_llvm_blocks
- Owner: andreafioraldi
- Created: 2021-06-08T12:03:46.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2021-10-29T12:14:03.000Z (over 4 years ago)
- Last Synced: 2025-01-30T13:26:25.030Z (over 1 year ago)
- Language: C++
- Size: 9.91 MB
- Stars: 2
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Daikon LLVM frontend for block invariants
An LLVM frontend for Daikon to generate basic-block level invariants.
### Pre
+ set LLVMDAIKON_OUTPUT_PATH
+ run a fuzzing campaign
### Input
+ It requires a working command line to compile a project
### Output
+ file containing the source-level mapping in json format
## Steps
+ set LLVMDAIKON_OUTPUT_PATH
+ compile with dump-cc/c++
+ run reconstruct_dump
+ run reconstruct_dwarf
+ run learn_invariants with dumper binary
+ run generate_constraints
+ run map_llvm_to_src
+ run insert_annotations path/to/project/src [TO BE FIXED]
## Automation
The script ```analyser.py``` provides an easy way to automate the previous steps. Command line example:
```
./analyser.py --output /tmp/res --project SRC_FOLDER --corpus ./FUZZER_OUTPUT/default/queue/ --configure "./configure --disable-shared" --compile make --dumper "SRC_FOLDER/BINARY @@"
```
It only assumes to running the fuzzing campaign before the actual analysis