rust-native-obf 0.1.1

advanced native obfuscation library for rust
Documentation
# rust-native-obf


advanced native obfuscation library for rust

## features


**compile time obfuscation**
- string encryption with pcg keystream
- byte array obfuscation
- wide string (utf-16) obfuscation
- compile time random number generation
- compile time hashing (xxhash32, sdbm)
- constant value encoding with mba

**runtime obfuscation**
- control flow obfuscation
- opaque predicates
- hidden function calls
- obfuscated conditionals
- cascade encryption
- stack trashing

**advanced techniques**
- static reference obfuscation
- pointer mangling
- obfuscated value storage
- anti-debugging checks
- tamper detection
- noise generation

## usage


```toml
[dependencies]
rust-native-obf = "0.1.0"
```

### string obfuscation


```rust
use rust_native_obf::*;

let secret = obf_str!("my secret key");
let bytes = obf_bytes!(b"secret data");
let wide = obf_wide!("wide string");
```

### compile time features


```rust
let hash = ct_xxhash!(b"data");
let random = ct_rand!(u32);
let encoded = obf_const!(42, u32);
```

### control flow


```rust
let result = hidden_call!({
    sensitive_function()
});

obf_if!(condition, {
    do_something();
}, {
    do_else();
});
```

### advanced obfuscation


```rust
static DATA: [u8; 4] = [1, 2, 3, 4];
let obf_ref = obf_static_ref!(&DATA);

let obf_val = ObfuscatedValue::new(123456);
let original = obf_val.get();

let encrypted = cascade_encrypt(data, 5);
```

### anti-analysis


```rust
debug_trap!();

if !anti_debug() {
    panic!("debugger detected");
}
```

## examples


```bash
cargo run --example basic
```

## how it works


**string obfuscation** - uses pcg random number generator for keystream generation, encrypts at compile time, decrypts with volatile reads to prevent constant folding

**control flow** - generates unique keys for each code block based on statement content, executes in randomized order

**value encoding** - uses mixed boolean arithmetic (mba) with rotation and multiplication for reversible encoding

**pointer obfuscation** - mangles static references using xxhash-based transformation with black_box to prevent llvm optimization

**compile time rng** - combines file location, line number, column with xxhash mixing and siphash for deterministic randomness

**anti-debug** - checks for debugger presence on windows, can be extended for other platforms

## technical details


- no_std compatible core modules
- volatile memory operations
- black_box for compiler barrier
- const fn for compile time execution
- zero runtime overhead for constants

## notes


this is obfuscation, not cryptography. designed to make reverse engineering harder, not impossible. do not use for hiding actual secrets in client binaries.

## license


MIT