
🛡️ Kit de protección de binarios de código abierto para Windows PE. Nanomite, protección de VM, antidepuración y más.
| Característica | Descripción |
|---|
| Nanomita | Reemplaza ramas condicionales por INT3, gestionadas por el VEH en tiempo de ejecución |
| Cifrado XTEA | Cifrado por página de .text con derivación de claves a partir de cabeceras PE |
| Protección VM | Virtualiza el código en un intérprete de bytecode personalizado |
| Memoria Maremoto | Cifrado granular por página con descifrado VEH bajo demanda |
| Señuelo | Funciones de engaño y código trampa para desorientar el análisis |
| Anti-Debug | Detección de PEB.BeingDebugged con envenenamiento de claves |
| Anti-Volcado | Técnicas de prevención de volcado de memoria |
| Detección de Sandbox | Detección de VM/hipervisor basada en CPUID |
| Ofuscación de Importaciones | Hashing de IAT con resolución en tiempo de ejecución |
| Verificación de Integridad | Cadena hash en cascada para detección de manipulación |
| Secreto Compartido de Shamir | División de clave en 3 participaciones en GF(2^64) |
| Criptografía de Caja Blanca | Tablas de búsqueda resistentes a ataques DCA |
# Clonar el repositorio
git clone https://github.com/mttm2/squre.git
cd squre
# Compilar binario de lanzamiento
cargo build --release
# El CLI está en target/release/squre-cli.exe
# Protección básica
squre-cli protect app.exe -o protected.exe
# Protección máxima (todas las funciones activadas)
squre-cli protect app.exe -o protected.exe --level maximum
# Semilla personalizada para compilaciones reproducibles
squre-cli protect app.exe -o protected.exe -s 0xDEADBEEF
squre-cli protect [OPCIONES] --output <SALIDA> <ENTRADA>
Opciones:
-o, --output <SALIDA> Ruta del archivo PE de salida
-s, --seed <SEMILLA> Semilla CEWE (hex, aleatoria si no se especifica)
-l, --level <NIVEL> Nivel de protección: standard (por defecto) o maximum
Funciones de Protección:
--vm Activar protección VM (código virtualizado)
--honeypot Activar modo señuelo (funciones de engaño, trampas)
--tidal Activar Memoria Maremoto (cifrado granular por página)
--ultra Activar modo ultra-endurecido (16 fases de anti-análisis)
--harden Activar modo endurecido (secciones polimórficas)
--anti-dump Activar protección anti-volcado de memoria
--integrity-check Activar verificación de integridad del código
--direct-syscall Activar llamadas directas al sistema (evitar hooks en modo usuario)
Ajuste:
--junk-level <0-3> Nivel de inserción de código basura
--fake-keys <N> Número de claves de engaño a incrustar
--layers <1-3> Capas de cifrado (XTEA/XOR/Rolling)
--obfuscate <0-3> Nivel de ofuscación
--no-nanomite Desactivar ramas nanomita
--no-anti-debug Desactivar comprobaciones anti-debug
--level maximum)SQURE puede proteger automáticamente binarios Rust con integración a nivel de fuente:
# Compilar y proteger un proyecto Rust
squre-cli build ./mi-proyecto-rust -o protected.exe --level maximum
Añade el crate squre-core para habilitar la protección basada en macros:
use squre_core::anti_debug;
fn main() {
// Instalar el manejador anti-debug y nanomita
anti_debug!();
// Tu código aquí
}
┌─────────────────────────────────────────────────────────────┐
│ Flujo de Protección │
├─────────────────────────────────────────────────────────────┤
│ 1. El SO carga el PE → entrada = .sqpre (stub ofuscado) │
│ 2. .sqpre descifra .sqinit usando clave XOR derivada del PE │
│ 3. .sqinit descifra .text usando XTEA con claves de página │
│ 4. Salto al punto de entrada original (CRT init → main) │
│ 5. anti_debug!() instala VEH + carga tabla nanomita │
│ 6. Ramas INT3 gestionadas por el manejador VEH │
│ 7. Memoria Maremoto cifra páginas → VEH descifra bajo demanda│
└─────────────────────────────────────────────────────────────┘
squre/
├── crates/
│ ├── squre-cli/ # Herramienta CLI para protección de binarios
│ │ ├── src/
│ │ │ ├── main.rs # Punto de entrada del CLI
│ │ │ ├── pe/ # Análisis y escritura de PE
│ │ │ └── transform/ # Transformaciones de protección
│ │ │ ├── hardening.rs # Fases de anti-análisis
│ │ │ ├── honeypot.rs # Generación de código señuelo
│ │ │ ├── vm_protect.rs # Compilador de bytecode VM
│ │ │ └── ...
│ └── squre-core/ # Macros en tiempo de ejecución para integración Rust
├── examples/ # Proyectos de ejemplo
└── TUTORIAL.md # Guía de uso detallada
SQURE está diseñado para la protección legítima de software:
No lo uses para malware. Esta herramienta es únicamente para fines defensivos.
Los binarios protegidos tienen una sobrecarga mínima en tiempo de ejecución:
¡Las contribuciones son bienvenidas! No dudes en enviar problemas y solicitudes de extracción.
git checkout -b feature/increible)git commit -m 'Añadir funcionalidad increíble')git push origin feature/increible)Licencia MIT - consulta LICENSE para más detalles.
SQURE - Porque tu código merece protección.