/fusor

Obfuscator based on logic-bombs

Primary LanguageC++GNU General Public License v3.0GPL-3.0

fusor

Obfuscator based on logic-bombs

Tested on llvm-3.8, Debian 9.x

This project is still under heavy development

Using Docker (Recommended)

How to install Docker.

Pull from Docker Hub

docker pull zzrcxb/fusor
docker run -itd --name {container's name} fusor /bin/bash

or Build by Yourself

wget https://raw.githubusercontent.com/zzrcxb/fusor/master/Dockerfile
docker build -t fusor .
docker run -itd --name {container's name} fusor /bin/bash

Use Ctrl+P Ctrl+Q to escape, use docker attach {container's name} to attach, use docker ps -a to view all containers' status.

Build fusor

git clone https://github.com/zzrcxb/fusor.git
cd fusor && mkdir build && cd build
cmake ..
make && cd ..

How to run

Setup environment variable

To specify the configure file's path, set environment variable FUSOR_CONFIG.

export FUSOR_CONFIG=/path/to/config.json

Change CFLAGS

Append -Xclang -load -Xclang /path/to/libFusorPass.so to your compiler's flag.

Libraries

The puzzle code or the transformation code is uint64_t type.

DeepArrayPuzzle

  • array size := puzzle_code[63:56]
  • first dimension depth := puzzle_code[55:48]
  • second dimension depth := puzzle_code[47:40]

BogusCFGTransformer

  • obfuscation probability := trans_code[64:56]
  • obfuscation times := trans_code[55:48]

LLVM10 Compatibility

Please checkout to branch llvm-10 for an LLVM10 compatible version. Thanks for @strazzere's contribution!