vmprotect
WIP VMProtect SDK for rust
Features
Basic VMProtect features:
protected!
macro for code
Syntax:
use protected;
protected!
- NAME: Which name will be displayed in VMProtect GUI
- TYPE: Protection type (mutate/virtualize/ultra per VMProtect docs)
- [KEY]: For virtualize/ultra only, require licenze activation to get this function to work
- CODE: Your code goes here
Protected code block is works like any other rust block, i.e:
use protected;
// Before protection
let a = ;
// After protection
let a = protected!;
Example:
// For black_box support
use protected;
use black_box;
protected!
macro for texts
Syntax:
use protected;
protected!
- TYPE: Text type, possible values: A (for normal c strings)/W (for uint16_t c strings (Used i.e in windows))
- TEXT: Your text, should be supported by your selected text type
This macro returns string, which can be transformed to normal one. This string is freed when dropped, implementations is located at vmprotect::strings::{encrypted_a::EncryptedStringA, encrypted_w::EncryptedStringW}
use protected;
// Before protection
let a = "Hello, world!";
// After protection
let a = protected!;
// Also for wide-strings:
let a = protected!;
Example:
// For `.into(): T` syntax support
use protected;
Licensing:
TODO Section
HWID
Example:
println!;