Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
gv_decryptor — Herramienta de recuperación de volcados de Gallery Vault con descubrimiento automatizado, derivación de claves y restauración automática de medios. | Kitploit
Herramientas/GitHubGitHub/caveeroo/gv_decryptor
Seguridad AndroidHerramientas de Cifrado/DescifradoIngeniería InversaAnálisis ForenseForensia MóvilRecuperación de DatosForensia DigitalCriptografía
GitHubcaveeroo/gv_decryptor

gv_decryptor

Herramienta de recuperación de volcados de Gallery Vault con descubrimiento automatizado, derivación de claves y restauración automática de medios.

Ver Repositorio
41hace 15 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Gallery Vault Decryptor

Herramienta de recuperación para archivos cifrados por la aplicación Android Gallery Vault (ThinkYeah).

Requisitos

Instalar dependencias:

root@kitploit:~
pip install pycryptodome prompt_toolkit
  • pycryptodome — Operaciones con clave maestra DES
  • prompt_toolkit — Interfaz TUI

Uso

Simplemente proporcione un volcado del sistema de archivos de Android y recuperará todos los archivos cifrados de Gallery Vault.

TUI interactivo (recomendado):

root@kitploit:~
python3 gv_tui.py

Controles: F5 para iniciar descubrimiento y recuperación, Tab para cambiar entre campos de configuración, F10 para salir.

CLI por lotes:

root@kitploit:~
python3 gv_decryptor.py /path/to/dump --out /path/to/output

Añada --manual para omitir el descubrimiento del repositorio y escanear todos los archivos de forma recursiva.

Características

  • Descubrimiento Automatizado — escanea volcados en busca de patrones de repositorio ocultos
  • Derivación de Clave Maestra — simula la lógica de seguridad interna de la aplicación, sin necesidad de PIN
  • Detección de Byte Mágico — restaura las extensiones de archivo correctas al descifrar (.jpg, .png, .mp4, …)
  • Interfaz Dual — TUI interactivo para exploración, CLI para scripting por lotes

Cómo Funciona

Gallery Vault V2 no cifra los archivos con su PIN. El PIN solo bloquea la interfaz de usuario. El cifrado real es un cifrado XOR por archivo cuya clave está protegida por una clave maestra DES hardcodeada incluida en el APK. Esto significa que la recuperación completa es posible en cualquier volcado de dispositivo, sin necesidad de PIN.

Diseño de Archivo V2

Cada archivo cifrado sigue una estructura binaria fija:

root@kitploit:~
┌───────────────────────────────────────────────────────────────┐
│                    ARCHIVO CIFRADO (.nomedia)                  │
├──────────────────┬────────────────────────────────────────────┤
│  Cabecera de     │  Carga útil cifrada                        │
│  miniatura       │  (bytes del activo cifrados con XOR)       │
│  (variable)      │                                            │
├──────────────────┴────────────────────────────────────────────┤
│                  Marcador interno  >>tyfs>>                    │
├───────────────────────────────────────────────────────────────┤
│  Metadatos Finales                                             │
│   ├─ Longitud original del archivo  (8 bytes)                 │
│   ├─ Tamaño de miniatura           (8 bytes)                  │
│   ├─ Byte de verificación          (1 byte)   → selecciona modo de descifrado │
│   └─ Clave XOR cifrada             (8 bytes)  → cifrada con DES              │
├───────────────────────────────────────────────────────────────┤
│                  Marcador final  <<tyfs<<                      │
└───────────────────────────────────────────────────────────────┘

Proceso de Descifrado

La recuperación ocurre en dos etapas DES encadenadas, seguidas de un paso XOR con conciencia de posición.

root@kitploit:~
╔══════════════════════════════════════════════════════════════════╗
║  ETAPA 1 — Derivación de Clave Maestra  (igual para cada archivo) ║
╠══════════════════════════════════════════════════════════════════╣
║                                                                  ║
║  cadena hardcodeada "good_gv"                                    ║
║         │                                                        ║
║         ▼  rellenar/truncar a 8 bytes                            ║
║  ┌─────────────┐                                                 ║
║  │  DES-ECB    │ ◄── constante hex hardcodeada (128 bits)        ║
║  │  descifrar  │                                                 ║
║  └──────┬──────┘                                                 ║
║         ▼                                                        ║
║   master_key_str  (texto plano, incrustado en el APK)            ║
║                                                                  ║
╠══════════════════════════════════════════════════════════════════╣
║  ETAPA 2 — Recuperación de Clave XOR por Archivo  (una vez por archivo cifrado) ║
╠══════════════════════════════════════════════════════════════════╣
║                                                                  ║
║  master_key_str[:8]                                              ║
║         │                                                        ║
║         ▼                                                        ║
║  ┌─────────────┐                                                 ║
║  │  DES-ECB    │ ◄── encrypted_xor_key  (8 bytes, desde los metadatos finales) ║
║  │  descifrar  │                                                 ║
║  └──────┬──────┘                                                 ║
║         ▼  tomar primeros 4 bytes                                ║
║     xor_key  [k0, k1, k2, k3]                                    ║
║                                                                  ║
╠══════════════════════════════════════════════════════════════════╣
║  ETAPA 3 — Ensamblaje de Carga Útil + Transformación XOR         ║
╠══════════════════════════════════════════════════════════════════╣
║                                                                  ║
║           ┌───────────────────────────────────────┐              ║
║           │   byte de verificación  (desde metadatos finales)    │              ║
║           └─────────────┬────────────────┬────────┘              ║
║                    0x00 │           0x01 │                       ║
║                         ▼                ▼                       ║
║           ┌─────────────────┐  ┌─────────────────────┐           ║
║           │  datos[thumb_len │  │  bloque_intercambiado│           ║
║           │    : orig_len]  │  │  (después de >>tyfs>>)│          ║
║           │  (contiguo)     │  │  +  bloque_principal  │          ║
║           └────────┬────────┘  └────────────┬────────┘           ║
║                    └────────────┬───────────┘                    ║
║                                 ▼                                ║
║                         carga útil ensamblada                    ║
║                                  │                               ║
║            ┌───────────────────┼───────────────────┐             ║
║            ▼                   ▼                   ▼             ║
║         byte[i]            (i & 0xFF)       xor_key[i % 4]       ║
║       (texto cifrado)     (sal de posición)  (clave rotatoria    ║
║                                            de 4 bytes            ║
║                                            desde etapa 2)        ║
║             │                   │                  │             ║
║             └─────────► XOR ◄───┘                  │             ║
║                          │                         │             ║
║                          └──────────► XOR ◄────────┘             ║
║                                         ▼                        ║
║                                 out[i]  →  Activo Original       ║
║                                                                  ║
╚══════════════════════════════════════════════════════════════════╝

Aviso Legal

Esta herramienta se proporciona únicamente con fines educativos y forenses. El autor no se hace responsable de su mal uso. Asegúrese siempre de tener la autorización adecuada antes de descifrar datos que no le pertenecen.

Descargar herramienta