How to use Oskrov
Most people only need the dashboard section below. CLI and SDK are Enterprise-only.
Using the dashboard
This is how everyone on Starter and Professional protects a binary. No install, no code changes.
CLI & SDK
EnterpriseEnterprise plans also get a local CLI and an SDK, for teams who want protection running inside their own build pipeline instead of (or alongside) the dashboard. Everything below this point is Enterprise-only.
SDK integration
Link against venux_sdk.lib and include venux.h, then wrap the regions you care about:
#include <venux.h>
void sensitive() {
VNX_VIRTUALIZATION_BEGIN;
// ... virtualized ...
VNX_VIRTUALIZATION_END;
}
void other() {
VNX_OBFUSCATION_BEGIN;
// ... obfuscated ...
VNX_OBFUSCATION_END;
}
CLI usage
Protect a binary in a single command:
venux --input app.exe --output app.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 starting point with venux --gen-config > project.json, then tune it:
{
"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
Export the C interface from a DLL to add your own stage to the pipeline:
#include <venux_ext.h>
extern "C" {
__declspec(dllexport)
VnxPluginInfo* VnxGetPluginInfo() {
static VnxPluginInfo info = {
1, "MyPlugin", "1.0", "Author",
"My custom protection stage"
};
return &info;
}
__declspec(dllexport)
int VnxPluginEvent(VnxPluginEvent event, VnxPluginContext* ctx) {
if (event == VNX_EVENT_POST_TRANSFORM) {
// custom post-transform logic
}
return 0;
}
}