Skip to content

Commit 8099ef1

Browse files
committed
README: updated for CRAX++ and added logo.
Update README.md Update README.md Create BUILD.md README: add build instructions README: simplify build section README: simplify build section README: fix broken hyperlink for BUILD.md README: simplify build section LICENSE: MIT for CRAX++ docs/logo: trimmed logo to a square Signed-off-by: Marco Wang <[email protected]>
1 parent d1b7ec5 commit 8099ef1

File tree

4 files changed

+152
-0
lines changed

4 files changed

+152
-0
lines changed

BUILD.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
## BUILD.md
2+
3+
4+
CRAX++ is implemented as a plugin of S2E, and it requires our custom patches for s2e which are only containted in this repository.
5+
6+
This file contains the instructions for building CRAX++ (Requiem).
7+
8+
## Preparation
9+
10+
S2E officially supports 64-bit Ubuntu (18.04, 20.04 LTS, or later versions), older versions may not work.
11+
12+
You need to install some additional tools or packages before building CRAX++.
13+
* [pwntools](https://github.com/Gallopsled/pwntools) (4.7.0)
14+
* [pybind11-dev](https://github.com/pybind/pybind11) (2.4.3-2build2)
15+
* [ROPgadget](https://github.com/JonathanSalwan/ROPgadget) (6.6)
16+
17+
## Building S2E
18+
19+
First, we will install **s2e-env**, a command-line tool for creating and administering isolated development environments for S2E.
20+
```
21+
sudo apt-get install git gcc python3 python3-dev python3-venv python3-pip vim neovim tmux
22+
23+
cd
24+
git clone https://github.com/s2e/s2e-env.git
25+
cd s2e-env
26+
27+
python3 -m venv venv
28+
. venv/bin/activate
29+
pip install --upgrade pip
30+
pip install .
31+
```
32+
33+
Create a new S2E environment (which consists of an S2E engine, tools, 1+ VM images, 1+ projects)
34+
```
35+
s2e init /home/aesophor/s2e
36+
```
37+
38+
Exit your shell, start another one:
39+
```
40+
cd
41+
rm -rf s2e-env
42+
exit
43+
```
44+
45+
We'll use the s2e-env in `~/s2e` from now on.
46+
```
47+
cd ~/s2e/source/s2e-env
48+
python3 -m venv venv
49+
. venv/bin/activate
50+
pip install --upgrade pip
51+
pip install .
52+
53+
cd ~/s2e
54+
source s2e_activate
55+
```
56+
57+
Clone CRAX++, replace s2e with CRAX++, and build. (~60 mins)
58+
59+
```
60+
cd ~/s2e/source
61+
rm -rf s2e
62+
git clone https://github.com/aesophor/CRAXplusplus s2e
63+
64+
s2e build
65+
```
66+
67+
Download pre-built VM images (~30 mins)
68+
```
69+
s2e image_build linux -d
70+
```
71+
72+
Create an S2E project with our concolic execution wrapper
73+
```
74+
cd ~/s2e/source/s2e/wrappers/symio
75+
make
76+
cd ~/s2e
77+
s2e new_project --image debian-9.2.1-x86_64 source/s2e/wrappers/symio/symio
78+
```
79+
80+
Install our configuration, target and poc
81+
82+
```
83+
cp source/s2e/wrappers/examples/* projects/symio/.
84+
cd projects/symio
85+
ln -s ../../examples/rop/rop target
86+
ln -s ../../examples/rop/poc poc
87+
./launch_s2e.sh
88+
```
89+
90+
## Reference
91+
92+
http://s2e.systems/docs/s2e-env.html

LICENSE

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
Copyright (c) 2021-2022 Software Quality Laboratory, NYCU
2+
Copyright (c) 2014-2020 Cyberhaven
3+
4+
Permission is hereby granted, free of charge, to any person obtaining a copy
5+
of this software and associated documentation files (the "Software"), to deal
6+
in the Software without restriction, including without limitation the rights
7+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8+
copies of the Software, and to permit persons to whom the Software is
9+
furnished to do so, subject to the following conditions:
10+
11+
The above copyright notice and this permission notice shall be included in all
12+
copies or substantial portions of the Software.
13+
14+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20+
SOFTWARE.
21+
22+
===========
23+
24+
S2E uses various libraries that may have their own licenses.
25+
Please refer to the LICENSE file in each directory or to the header of each source file.
26+
27+
libq: LGPL v2.1
28+
libcpu: LGPL v2.1
29+
libtcg: BSD/MIT
30+
libcoroutine: LGPL v2.1
31+
klee: University of Illinois/NCSA
32+
llvm: University of Illinois/NCSA (http://llvm.org)
33+
lua: MIT (https://www.lua.org)

README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
## CRAX++: software CRash analysis for Automatic eXploit generation
2+
3+
codename: `requiem`
4+
5+
version: early alpha
6+
7+
CRAX++ is being actively developed by:
8+
9+
* Marco Wang \<[email protected]\>
10+
11+
<br>
12+
13+
## Overview
14+
15+
CRAX (2012) [[Paper](https://ir.nctu.edu.tw/bitstream/11536/24012/1/000332520700022.pdf)] [[Repo](https://github.com/SQLab/CRAX/tree/workable)], originally developed by SQLab, NCTU (led by Prof. Shih-Kun Huang) back in 2012, was capable of generating exploits for large-scale applications (e.g., Microsoft Windows and mplayer) using selective symbolic execution (i.e. concolic execution).
16+
17+
CRAX++ (2021) is the new version of the original CRAX.
18+
19+
## Build
20+
21+
To build CRAX++, please refer to the following documentation:
22+
* [Official S2E documentation](https://s2e.systems/docs) for how to build and use S2E
23+
* [BUILD.md](BUILD.md) for build instructions written specifically for CRAX++
24+
25+
## Features
26+
27+
WIP...

docs/logo/logo.png

18.7 KB
Loading

0 commit comments

Comments
 (0)