AutoGrader is developed based on BAP and PathGrind.
BAP: The Binary Analysis Platform. For more information see the project webpage at http://bap.ece.cmu.edu
BAP is released under MIT license and the GPL license; see the appropriate LICENSE.{MIT,GPL}.
PathGrind is released under the GPL liscence.
How to use:
- AutoGrader starts with inquiry PathGrind an input based on white-box analysis.
- When an input is inquiried, AutoGrader compares the results by running the reference and submission with this input.
- If the results are different, exit the grading process. If results are same,then run PathAnalysis.
- If true deviation is found, exit the grading process. If no deviation is found, goto 1.
Before you run the code, please follow ag_pathgrind/README.txt
and
ag_pathanalysis/INSTALL
to configure the environment.
To run AutoGrader, you simply start by going to ag_pathgrind
,
cd ag_pathgrind
And run from the fuzzer,
./fuzz/fuzz.py ag_c1 w1
It will call the path analysis as long as new inputs are generated.
Here ag_c1
is a reference implementation and w1
is a submission.
To crawl dataset as the paper describes, please run crawler.py
.