Skip to content
Neil Zhao edited this page Nov 1, 2017 · 8 revisions

This project consists of a logic-bomb data set and a building framework. Which allows you to build test cases for you tools.

Basic ideas

The essential part of the test case is a function named "logic_bomb" (or use other name, just edit config files). This function MUST have only two possible return values, 0 or 1. And in "a_tester.h", we defined BOMB_ENDING as 1, NORMAL_ENDING as 0. It is recommended to use macros defined in "a_tester.h" (how to create logic bomb?). However, we cannot build a program if we don not have a main function (I am talking about C or C++ here). Our framework must know how to generate a valid main function for each logic bomb. So, we use a template to generate main function automatically. Click here to know more about templates.

How to use

Compile test cases to binaries

Just run

python3 compile.py -h

for more details. And its config file locates at config/compile.json

Compile and run it with different test tools

Compile dependencies first, then run

python3 run_test.py

We provide three tools (angr, KLEE, triton) support for most test cases. You can build your own script for other test tools. Its config file locates at config/test_settings.py