All Projects → chenx6 → baby_obfuscator

chenx6 / baby_obfuscator

Licence: MIT license
Using LLVM Pass to obfuscate program

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
CMake
9771 projects
shell
77523 projects

Projects that are alternatives of or similar to baby obfuscator

dumb-obfuscator
Tutorial on how to write the dumbest obfuscator I could think of.
Stars: ✭ 147 (+122.73%)
Mutual labels:  obfuscation, llvm-pass
Lua-Obfuscator
A Lua Obfuscator made for Roblox, but should work on most Lua applications
Stars: ✭ 84 (+27.27%)
Mutual labels:  obfuscation
Vmprotect
Obfuscation method using virtual machine.
Stars: ✭ 204 (+209.09%)
Mutual labels:  obfuscation
Mosey
A free and open source java bytecode obfuscator, experimental
Stars: ✭ 43 (-34.85%)
Mutual labels:  obfuscation
Inline syscall
Inline syscalls made easy for windows on clang
Stars: ✭ 232 (+251.52%)
Mutual labels:  obfuscation
whitebox
White-box Analysis and Implementation Tools
Stars: ✭ 58 (-12.12%)
Mutual labels:  obfuscation
Yansollvm
Yet Another Not So Obfuscated LLVM
Stars: ✭ 180 (+172.73%)
Mutual labels:  obfuscation
ColonialObfuscator
Java Obfuscator in Beta
Stars: ✭ 23 (-65.15%)
Mutual labels:  obfuscation
PPiOS-Rename
Symbol obfuscator for iOS apps
Stars: ✭ 350 (+430.3%)
Mutual labels:  obfuscation
slopShell
the only php webshell you need.
Stars: ✭ 208 (+215.15%)
Mutual labels:  obfuscation
AutoIt-Obfuscator
AutoIt Obfuscator lets you protect AutoIt script source code against analysis, reverse engineering & decompilation using advanced obfuscation techniques and polymorphic encryption.
Stars: ✭ 31 (-53.03%)
Mutual labels:  obfuscation
Radon
Experimental Java bytecode obfuscator
Stars: ✭ 243 (+268.18%)
Mutual labels:  obfuscation
openvpn-shapeshifter
This script will automatically guide you to install and configure your OpenVPN server with Shapeshifter Dispatcher (obfuscation) which will allow you to bypass the DPI blockage on OpenVPN. This setup will offer the users the freedom to choose between regular OpenVPN connection or obfuscated one, they actually can use both! OpenVPN is the VPN pro…
Stars: ✭ 59 (-10.61%)
Mutual labels:  obfuscation
Lime Crypter
Simple obfuscation tool
Stars: ✭ 217 (+228.79%)
Mutual labels:  obfuscation
bpre
bot protection reverse engineering
Stars: ✭ 181 (+174.24%)
Mutual labels:  obfuscation
Obfuscator Class
👨‍💻 Simple and effective Obfuscator PHP class (this is not a stupid base64 encoding script, but a real and effective obfuscation script)
Stars: ✭ 202 (+206.06%)
Mutual labels:  obfuscation
CosmicClone
Cosmic Clone is a utility that can backup\clone\restore a azure Cosmos database Collection. It can also anonymize cosmos documents and helps hide personally identifiable data.
Stars: ✭ 113 (+71.21%)
Mutual labels:  obfuscation
gohide
tunnel port to port traffic over an obfuscated channel with AES-GCM encryption.
Stars: ✭ 62 (-6.06%)
Mutual labels:  obfuscation
kiteshield
Packer/Protector for x86-64 ELF binaries on Linux
Stars: ✭ 71 (+7.58%)
Mutual labels:  obfuscation
Forsaken
One of the best Python3.9 obfuscators.
Stars: ✭ 94 (+42.42%)
Mutual labels:  obfuscation

Baby obfuscator

Using LLVM Pass to obfuscate programs.

Write up (in Chinese):

Features

Feature Enable Flag
Obfuscate constant string -obfstr
Add bogus control flow -boguscf
Instruction Substitution -subobf
Call graph flattening -flattening

Requirement

llvm-9 and llvm-9-dev
cmake >= 3.10
gcc / clang

Build

mkdir build && cd build
# You should modify the DLLVM_DIR option to fit your environment
cmake .. -DLLVM_DIR=/usr/lib/llvm-9/lib/cmake/llvm/
cmake --build . -- -j$(nproc)

How to use

# You should assign ${fullname} and ${basename} as your program's name
# Example: fullname=test.c; basename=test
# Compile origin program
clang-9 -emit-llvm -S ${fullname} -o ${basename}.ll
# Load obfuscator to obfuscate program
# You can change -obfstr option to other options
opt-9 -load /part/to/libObfuscator.so \
      -obfstr ${basename}.ll \
      -o ${basename}_obfuscated.bc
# If you are using ObfuscateString Pass, you should link encrypt.c with your program
# Compile to target platform
clang-9 ${basename}_obfuscated.bc -o ${basename}

Acknowledgement

The project has "borrow" some code from these projects:

obfuscator-llvm/obfuscator

License

MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].