
🛡️ Toolkit per la protezione binaria open source per Windows PE. Nanomite, protezione VM, anti-debug e altro.
Secure Quality Uncrackable Runtime Encryption - Toolkit avanzato per la protezione binaria di file PE Windows.
SQURE fornisce una protezione a più livelli contro reverse engineering, debug e manomissioni:
| Caratteristica | Descrizione |
|---|---|
| Nanomite | Sostituisce i salti condizionali con INT3, gestiti dal VEH in fase di esecuzione |
| Crittografia XTEA | Crittografia per-pagina del .text con derivazione della chiave dagli header PE |
| Protezione VM | Virtualizza il codice in un interprete bytecode personalizzato |
| Memoria Tidal | Crittografia granulare per pagina con decrittografia on-demand tramite VEH |
| Honeypot | Funzioni esca e codice trappola per ingannare l'analisi |
| Anti-Debug | Rilevamento di PEB.BeingDebugged con avvelenamento delle chiavi |
| Anti-Dump | Tecniche per prevenire il dump della memoria |
| Rilevamento Sandbox | Rilevamento VM/hypervisor tramite CPUID |
| Offuscamento Import | Hashing dell'IAT con risoluzione runtime |
| Controllo Integrità | Catena di hash a cascata per il rilevamento di manomissioni |
| Shamir Secret Sharing | Chiave suddivisa in 3 parti in GF(2^64) |
| Crittografia White-box | Tabelle di lookup resistenti ad attacchi DCA |
# Clona il repository
git clone https://github.com/mttm2/squre.git
cd squre
# Compila il binario di rilascio
cargo build --release
# La CLI si trova in target/release/squre-cli.exe
# Protezione base
squre-cli protect app.exe -o protected.exe
# Protezione massima (tutte le funzionalità abilitate)
squre-cli protect app.exe -o protected.exe --level maximum
# Seed personalizzato per build riproducibili
squre-cli protect app.exe -o protected.exe -s 0xDEADBEEF
squre-cli protect [OPTIONS] --output <OUTPUT> <INPUT>
Opzioni:
-o, --output <OUTPUT> Percorso del file PE di output
-s, --seed <SEED> Seed CEWE (hex, casuale se non specificato)
-l, --level <LEVEL> Livello di protezione: standard (default) o maximum
Funzionalità di protezione:
--vm Abilita la protezione VM (codice virtualizzato)
--honeypot Abilita la modalità honeypot (funzioni esca, trappole)
--tidal Abilita la memoria Tidal (crittografia per pagina)
--ultra Abilita la modalità ultra-blindata (16 fasi anti-analisi)
--harden Abilita la modalità blindata (sezioni polimorfe)
--anti-dump Abilita la protezione anti-dump della memoria
--integrity-check Abilita il controllo di integrità del codice
--direct-syscall Abilita le syscall dirette (bypa degli hook in user-mode)
Ottimizzazioni:
--junk-level <0-3> Livello di inserimento di codice spazzatura
--fake-keys <N> Numero di chiavi esca da incorporare
--layers <1-3> Livelli di crittografia (XTEA/XOR/Rolling)
--obfuscate <0-3> Livello di offuscamento
--no-nanomite Disabilita i rami nanomite
--no-anti-debug Disabilita i controlli anti-debug
--level maximum)SQURE può proteggere automaticamente i binari Rust con integrazione a livello di sorgente:
# Compila e protegge un progetto Rust
squre-cli build ./my-rust-project -o protected.exe --level maximum
Aggiungi il crate squre-core per abilitare la protezione basata su macro:
use squre_core::anti_debug;
fn main() {
// Installa il gestore anti-debug e nanomite
anti_debug!();
// Il tuo codice qui
}
┌─────────────────────────────────────────────────────────────┐
│ Flusso di protezione │
├─────────────────────────────────────────────────────────────┤
│ 1. Il sistema carica il PE → entry = .sqpre (stub offuscato)│
│ 2. .sqpre decifra .sqinit usando una chiave XOR derivata dal PE│
│ 3. .sqinit decifra .text usando XTEA con chiavi per pagina │
│ 4. Salto al punto di ingresso originale (CRT init → main) │
│ 5. anti_debug!() installa VEH + carica la tabella nanomite │
│ 6. I rami INT3 vengono gestiti dal gestore VEH │
│ 7. La memoria Tidal crittografa le pagine → VEH decifra on-demand│
└─────────────────────────────────────────────────────────────┘
squre/
├── crates/
│ ├── squre-cli/ # Strumento CLI per la protezione binaria
│ │ ├── src/
│ │ │ ├── main.rs # Punto di ingresso CLI
│ │ │ ├── pe/ # Parsing e scrittura PE
│ │ │ └── transform/ # Trasformazioni di protezione
│ │ │ ├── hardening.rs # Fasi di anti-analisi
│ │ │ ├── honeypot.rs # Generazione di codice esca
│ │ │ ├── vm_protect.rs # Compilatore bytecode VM
│ │ │ └── ...
│ └── squre-core/ # Macro runtime per integrazione Rust
├── examples/ # Progetti d'esempio
└── TUTORIAL.md # Guida dettagliata all'uso
SQURE è progettato per la protezione legittima del software:
Non utilizzare per malware. Questo strumento ha solo scopi difensivi.
I binari protetti hanno un overhead minimo in runtime:
I contributi sono benvenuti! Sentiti libero di aprire issue e pull request.
git checkout -b feature/amazing)git commit -m 'Aggiungi funzionalità fantastica')git push origin feature/amazing)Licenza MIT - vedi LICENSE per i dettagli.
SQURE - Perché il tuo codice merita protezione.