Skip to content

0xvpr/vpr-obfuscator

Repository files navigation

vpr-obfuscator

A cross-platform, single-header-only compile-time obfuscation library.

Demonstration

( cd example && make )
g++ -std=c++20 -Ofast -I../include -Wall -Wextra -Werror -Wpedantic -Wconversion -Wshadow -Woverflow main.cpp -s -o example.exe
./example.exe
Obfuscated text: A-very-obvious-string-that-would-be-noticable
strings example.exe | egrep -i 'very|obvious|string|that|would|be|noticable' # code 1 == nothing found
make: *** [makefile:9: all] Error 1

Features

  • Provides compile-time obfuscated data at all** optimization levels. (**tested on clang/gcc/MSVC)
  • Supports Symmetric and Asymmetric obfuscation implementations.
  • Extremely light-weight and portable.
  • Highly modular and customizable.

Integration

  • curl
    curl -LSsO obf.hpp 'https://raw.githubusercontent.com/0xvpr/vpr-obfuscator/refs/heads/main/include/vpr/obf.hpp'
  • cmake
    Terminal
    cmake -B build
    cmake --install build --prefix=<path/to/prefix> # install as /path/to/prefix/include/vpr/obf.hpp
    # cmake --install build # for a global installation
    CMakeLists.txt
    find_package(vpr-obfuscator REQUIRED)
    
    add_executable(my_app main.cpp)
    target_link_libraries(my_app PRIVATE vpr::vpr-obfuscator)