Documentation

THE MANUAL

Getting Started

After subscribing and downloading OmniVNX from your dashboard, extract the archive to your preferred location. You'll find:

  • check
    venux.exe The CLI protection tool
  • check
    venux_sdk.lib + venux.h SDK library and header for marking code regions
  • check
    venux_ext.h Plugin development header
Requirements: Windows 10/11 (x64), Visual Studio 2019+ for compiling your project with the SDK.

SDK Integration

Link against venux_sdk.lib and include venux.h in your project. Then annotate code regions with marker macros:

#include <venux.h>

void my_sensitive_function() {
    VNX_VIRTUALIZATION_BEGIN;
    // ... code to virtualize ...
    VNX_VIRTUALIZATION_END;
}

void my_other_function() {
    VNX_OBFUSCATION_BEGIN;
    // ... code to obfuscate ...
    VNX_OBFUSCATION_END;
}

CLI Usage

Protect a binary with a single command:

venux.exe --input myapp.exe --output myapp_protected.exe --anti-debug --anti-tamper

All Options

Flag Description
-i, --input <file> Input PE file to protect
-o, --output <file> Output file path
-p, --project <json> Load settings from project config
-m, --map <file> MAP file for symbol resolution
--plugins <dir> Plugin directory to load
--anti-tamper Enable anti-tamper integrity checks
--anti-debug Enable anti-debug protections
--reflection Enable process reflection
--no-pack Disable packing/compression
--no-core Disable core obfuscation transforms
--no-anti-disasm Disable anti-disassembly padding fill
--no-ep-obf Disable entry-point obfuscation
-b, --backup Create backup of original file
-v, --verbose Verbose logging
-q, --quiet Suppress all output
--gen-config Print default JSON config and exit

SDK Markers

Macro Protection Level
VNX_VIRTUALIZATION_BEGIN / END Full code virtualization (strongest)
VNX_OBFUSCATION_BEGIN / END Multi-layer obfuscation
VNX_CODE_FLATTENING_BEGIN / END Control-flow flattening
VNX_LITE_OBFUSCATION_BEGIN / END Lightweight obfuscation
VNX_DUAL_MODE_BEGIN / END Virtualization + obfuscation combined

Project Configuration

Generate a default config with venux.exe --gen-config > myproject.json, then customize:

{
    "input": "target.exe",
    "output": "target_protected.exe",
    "virtualizer": {
        "enabled": true,
        "complexity": 3
    },
    "obfuscator": {
        "enabled": true,
        "control_flow_flattening": true,
        "string_encryption": true
    },
    "protector": {
        "anti_tamper": true,
        "anti_debug": true,
        "pack": true,
        "import_protection": true
    }
}

Plugin Development

Create a DLL exporting the required C interface to extend the protection pipeline:

#include <venux_ext.h>

extern "C" {
    __declspec(dllexport)
    VnxPluginInfo* VnxGetPluginInfo() {
        static VnxPluginInfo info = {
            1, "MyPlugin", "1.0", "Author",
            "My custom protection plugin"
        };
        return &info;
    }

    __declspec(dllexport)
    int VnxPluginEvent(
        VnxPluginEvent event,
        VnxPluginContext* ctx
    ) {
        if (event == VNX_EVENT_POST_TRANSFORM) {
            // custom post-transform logic
        }
        return 0;
    }
}