2217936322 / Pluto-Obfuscator

Obfuscator based on LLVM 12.0.1

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pluto-Obfuscator

Pluto is an obfuscator based on LLVM 12.0.1, being developed and maintained by 34r7h4mn.

Pluto is a dwarf planet in the Kuiper belt, a ring of bodies beyond the orbit of Neptune.

Environment

  • Ubuntu 20.04.3 LTS
  • Clang/LLVM 12.0.1
  • CMake 3.16.3
  • Ninja 1.10.0
  • libz3-dev 4.8.7-4build1

Usage

Dependencies

The MBA Obfuscation pass depends on z3-solver. On Ubuntu, you can simply install it with the following command:

sudo apt install libz3-dev 

Building on Linux/Windows

The following commands work on both Linux and Windows:

cd build
cmake -G "Ninja" -DLLVM_ENABLE_PROJECTS="clang" \
    -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" \
    -DBUILD_SHARED_LIBS=On ../llvm
ninja

Examples

Several examples are available in obfu-examples and run-examples.sh

Features

  • Control Flow Flattening
  • Bogus Control Flow
  • Instruction Substitution
  • Random Control Flow
  • Variable Substitution
  • String Encryption
  • Globals Encryption
  • Trap Angr
  • MBA Obfuscation

About

Obfuscator based on LLVM 12.0.1


Languages

Language:LLVM 48.4%Language:C++ 32.3%Language:Assembly 11.0%Language:C 6.3%Language:Objective-C 0.7%Language:Python 0.4%Language:HTML 0.3%Language:Objective-C++ 0.2%Language:CMake 0.2%Language:Cuda 0.1%Language:OCaml 0.1%Language:Go 0.0%Language:Perl 0.0%Language:Shell 0.0%Language:JavaScript 0.0%Language:Roff 0.0%Language:Cool 0.0%Language:Emacs Lisp 0.0%Language:C# 0.0%Language:Batchfile 0.0%Language:CSS 0.0%Language:Vim Script 0.0%Language:Fortran 0.0%Language:Dockerfile 0.0%Language:Makefile 0.0%Language:M 0.0%Language:TypeScript 0.0%Language:AppleScript 0.0%Language:RenderScript 0.0%Language:SWIG 0.0%Language:Starlark 0.0%Language:Swift 0.0%Language:Rust 0.0%