Skip to content

Commit

Permalink
Add README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
wwh1004 committed Aug 16, 2023
1 parent 3f52af1 commit fe39b37
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# OLLVM-16

Obfuscator-LLVM for LLVM 16.x branch

## Features

1. Original obfuscation passes including bogus control flow (-bcf), split basic block (-split), control flow flattening (-fla) and substitution (-sub).
1. Porting to new pass manager
1. Many bugs fixed

## Usage

``` dos
clang -mllvm -sub -mllvm -split -mllvm -fla -mllvm -bcf main.c
```

``` dos
clang -mllvm -sub -mllvm -sub_loop=3 -mllvm -split -mllvm -split_num=3 -mllvm -fla -mllvm -bcf -mllvm -bcf_loop=3 -mllvm -bcf_prob=40 main.c
```

## Building

### 1. Add Source

Move 'Obfuscation' directory to 'llvm-project/llvm/lib' directory.

![](./images/1.png)

### 2. Update CMakeLists.txt

Find 'llvm-project/llvm/lib/CMakeLists.txt' and append 'add_subdirectory(Obfuscation)'

![](./images/2.png)

### 3. Configure CMake

Pass '-DLLVM_OBFUSCATION_LINK_INTO_TOOLS=ON' to CMake (If you use Windows)

![](./images/3.png)

## Downloads

I've built llvm-16.x with this repo for Windows X86 user. You can download binaries in GitHub Releases page.
Binary file added images/1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/2.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/3.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit fe39b37

Please sign in to comment.