https://github.com/newworldcomingsoon/unknownfield
UnknownField is a tool based clang that obfuscating the order of fields to protect your C/C++ game or code.
https://github.com/newworldcomingsoon/unknownfield
clang cpp field game llvm obfuscate order protection
Last synced: 2 months ago
JSON representation
UnknownField is a tool based clang that obfuscating the order of fields to protect your C/C++ game or code.
- Host: GitHub
- URL: https://github.com/newworldcomingsoon/unknownfield
- Owner: NewWorldComingSoon
- License: mit
- Created: 2022-03-30T15:38:53.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-01-21T18:06:35.000Z (about 3 years ago)
- Last Synced: 2023-03-04T00:57:07.286Z (about 3 years ago)
- Topics: clang, cpp, field, game, llvm, obfuscate, order, protection
- Language: C++
- Homepage:
- Size: 146 KB
- Stars: 39
- Watchers: 3
- Forks: 11
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# `UnknownField`
UnknownField is a tool based clang that obfuscating the order of fields to protect your C/C++ game or code.

## Before

## After

## Usage
```
UnknownField-cli.exe
Usage: UnknownField-cli.exe [options] [... ]
Optional arguments:
-- -I - External include directory
-g - Enable global obfucation
```
## Example commands:
```bash
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:
```C++
#include "sdk/UnknownFieldSDK.h"
#include
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
- [llvm-msvc](https://github.com/NewWorldComingSoon/llvm-msvc/releases)
## Build
```
git clone --recurse-submodules https://github.com/NewWorldComingSoon/UnknownField.git
cd UnknownField
set LLVM-MSVC-BIN=E:\llvm\llvm-msvc-bin -> You need to replace your path.
cmake -Bbuild -DLLVM_DIR=%LLVM-MSVC-BIN%\lib\cmake\llvm -DClang_DIR=%LLVM-MSVC-BIN%\lib\cmake\clang
cmake --build build --config Release -- -m
```
## TODO
- Obfuscating the order of virtual functions.
## Note
This project is currently still a demo.