Skip to content

Commit a87f1ff

Browse files
committed
add readme
1 parent 7d9a6d2 commit a87f1ff

File tree

3 files changed

+267
-0
lines changed

3 files changed

+267
-0
lines changed

graph.dot

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
digraph G {
2+
GCC[label="compiler,\nlinker"]
3+
binary[shape=box, label="ELF binary"]
4+
C[shape=box, label="C\nsource code"]
5+
BIR[shape=box, label="BIR\nprogram semantics\n(human readable)"]
6+
ADT[shape=box, label="ADT\nprogram semantics\n(machine readable)"]
7+
BASIL[label="BASIL\n(bil_to_boogie_translator)"]
8+
specification[shape="note", label="rely/guarantee\npre/post\nspecifications"]
9+
annotated_boogie_program[shape=box, label="annotated\nBoogie\nprogram"]
10+
boogie[label="Boogie\nverifier"]
11+
ASL [shape=note, label="ASL\ninstruction semantics\nspecifications"]
12+
ASLp [label="ASLp,\nBAP plugin"]
13+
BAP [label="BAP"]
14+
C -> GCC
15+
GCC -> binary
16+
binary -> BAP
17+
BAP -> BIR
18+
BAP -> ADT
19+
BAP-> ASLp
20+
ASL -> ASLi
21+
ASLp-> ASLi
22+
ASLi -> ASLp
23+
ASLp -> BAP [label="instruction\nsemantics"]
24+
ADT -> BASIL
25+
binary -> readelf
26+
readelf -> BASIL [label="stdout"]
27+
specification -> BASIL
28+
BASIL -> annotated_boogie_program
29+
annotated_boogie_program -> boogie
30+
}

graph.svg

+215
Loading

profile/README.md

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
## Project Summary
2+
3+
- [bil-to-boogie-translator](https://github.com/UQ-PAC/bil-to-boogie-translator) The "BASIL" project: translating lifted Aarch64 binaries to boogie annotated weakest pre-condition and rely/guarantee for information flow.
4+
5+
![BASIL project diagram](graph.svg)
6+
7+
- [bap](https://github.com/UQ-PAC/bap) Fork of CMU Binary Analysis Platform with the ASLp plugin _and_ primus lisp semantics. ASLp is used by default instead of the primus semantics.
8+
- The home of the previous project to provide Aarch64 semantics to bap manually using its Primus lisp plugin framework
9+
- [barrier-tools](https://github.com/UQ-PAC/barrier-tools/blob/main/veri-asm.py) Tools used in writing the BAP Primus semantics. Contains some scripts useful for exploring BAP's lifter
10+
- [qemu](https://github.com/UQ-PAC/qemu)
11+
- BAP QEMU fork instrumented to provide traces for comparing BAP generated semantics. Supports basic instructions with partial support for SIMD and FP instructions.
12+
- [gtirb-semantics](https://github.com/UQ-PAC/gtirb-semantics) In-progress project to use the GTIRB lifter with instruction level semantics provided by ASLp, (to replace BAP)
13+
- [wemelt](https://github.com/UQ-PAC/wemelt) An earlier information flow logic verifier for a source code language
14+
15+
- ASL Lifter Project (FMCAD 2023)
16+
- [aslp](https://github.com/UQ-PAC/aslp) The Architecture Specification Language interpreter (ASLi) partial evaluator (ASLp)
17+
- [bap-asli-plugin](https://github.com/UQ-PAC/bap-asli-plugin) BAP plugin for lifting aarch64, with instruction-level semantics provided by the ASL partial evaluator (ASLp)
18+
- [llvm-translator](https://github.com/UQ-PAC/llvm-translator) Tool for evaluating and comparing ASLp against existing lifters using Alive2
19+
20+
- [wpif_csf2021](https://github.com/UQ-PAC/wpif_CSF21) Isabelle theories for _Backwards-directed information flow analysis for concurrent programs_ CSF'21 paper
21+
- [wmm-rg](https://github.com/UQ-PAC/wmm-rg) Isabelle theories for a Rely/guarantee logic for weak memory models based on interfering thread-local instruction pairs
22+

0 commit comments

Comments
 (0)