Skip to content

Commit

Permalink
more content for README
Browse files Browse the repository at this point in the history
  • Loading branch information
jkrshnmenon committed Apr 7, 2022
1 parent 321a60d commit a0328ed
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 3 deletions.
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,4 @@ Arbiter can then be used to detect if this property is violated at any of the co
This repository contains some examples of using Arbiter to detect different CWE types in the `examples` directory.


It also contains templates that were used for evaluating Arbiter on the Juliet Test suite as well as real world binaries in the `vuln_templates` directory.
The argument to each of these scripts is the path to the binary that you want to test.
It also contains templates that were used for evaluating Arbiter on the Juliet Test suite as well as real world binaries in the `vuln_templates` directory.
17 changes: 16 additions & 1 deletion examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,19 @@ The vulnerable binaries are present inside `cve-binaries` directory and the corr

The `cve-logs` directory contains the output generated by Arbiter when running the VD against the target binary.

Please refer to the README file inside `cve-logs` for an explanation on how to interpret the output.
Please refer to the README file inside `cve-logs` for an explanation on how to interpret the output.


# Running the examples
Use the `run_arbiter` script using the `-f` flag to specify a VD inside `cve-vuln_templates` and the `-t` flag to specify a binary inside `cve-binaries`.

Optionally, set the `-l` and `-j` flags to a directory in order to view the output from Arbiter.

For example, in order to run the CVE-XXXX-YYYY example, the command used would look like

```
cd <path/to/arbiter>
mkdir <some_log_dir>
mkdir <some_json_dir>
./vuln_templates/run_arbiter.py -f examples/cve-vuln_templates/vd_cve-xxxx-yyyy.py -t examples/cve-binaries/cve-xxxx-yyyy -l <some_log_dir> -j <some_json_dir>
```
13 changes: 13 additions & 0 deletions vuln_templates/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,16 @@ optional arguments:
-s Enable strict mode (stricter static data-flow based filtering)
```

The parameters `-f` and `-t` are required while the others are optional.

# Writing your own VD

In order to write a new VD, all you need to do is to implement 4 functions, namely
`apply_constraint`, `specify_sources`, `specify_sinks` and `save_results`.

Please refer to the `examples` directory for more information about each of these functions.


Once you have this VD ready, invoke the `run_arbiter` with the `-f` parameter pointing to this VD and the `-t` parameter pointing to the target binary.

0 comments on commit a0328ed

Please sign in to comment.