UnknownField is a tool based clang that obfuscating the order of fields to protect your C/C++ game or code.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
gmh5225 2839880514
Upload
3 years ago
images Upload 3 years ago
sdk Upload 3 years ago
test Upload 3 years ago
tool Upload 3 years ago
.clang-format Upload 3 years ago
.gitmodules Upload 3 years ago
CMakeLists.txt Upload 3 years ago
LICENSE Upload 3 years ago
ObfuscateField.cpp Upload 3 years ago
ObfuscateField.h Upload 3 years ago
README.md Upload 3 years ago
build-release.bat Upload 3 years ago

README.md

UnknownField

UnknownField is a tool based clang that obfuscating the order of fields to protect your C/C++ game or code.

image

Before

image

After

image

Usage

UnknownField-cli.exe
Usage: UnknownField-cli.exe [options] <source0> [... <sourceN>]

Optional arguments:
-- -I                       - External include directory
-g                          - Enable global obfucation

Example commands:

UnknownField-cli.exe test.cpp
UnknownField-cli.exe test.cpp -g
UnknownField-cli.exe test.cpp -- -IE:\External\Directory
UnknownField-cli.exe test.cpp -- -IE:\External\Directory1 -IE:\External\Directory2

Example SDK:

#include "sdk/UnknownFieldSDK.h"
#include <Windows.h>
class UnknownFieldProtection(MyClassX) {
public:
  MyClassX();
  ~MyClassX();
private:
  UCHAR name[300];
  DWORD mp;
  DWORD maxmp;
  DWORD hp;
  DWORD maxhp;
  unsigned char level;
};

Usage Dependency

  • Visual Studio with SDK10 (without this you could not include windows.h in your file)

Build Dependency

Build

git clone --recurse-submodules https://github.com/NewWorldComingSoon/UnknownField.git
cd UnknownField
mkdir build
cd build
set LLVM-MSVC-BIN=E:\llvm\llvm-msvc-bin  -> You need to replace your path.
cmake ../ -DLLVM_DIR=%LLVM-MSVC-BIN%\lib\cmake\llvm -DClang_DIR=%LLVM-MSVC-BIN%\lib\cmake\clang
cmake --build . --config Release -- -m

TODO

  • Obfuscating the order of virtual functions.

Note

This project is currently still a demo.