Skip to content

ElBecerril/RecuperaGhost

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RecupeGhost - El Detective de Archivos Perdidos

             ▄▄██████▄▄
          ▄▄████████████▄▄
       ██████████████████████
       █████  ████████  █████
       █████  ████████  █████
       ██████████████████████
       ██████████████████████
       ██████████████████████
       ██████████████████████
       ██████████████████████
       ██████████████████████
       ██████  ██████  ██████
        ▀▀▀▀    ▀▀▀▀    ▀▀▀▀
            👻 RecupeGhost

Herramienta CLI de recuperacion de archivos multimedia borrados, escrita en Rust. Utiliza file carving para buscar firmas (magic bytes) directamente en discos o imagenes raw, sin depender del sistema de archivos.

Formatos soportados (21)

Categoria Formatos
Fotos (6) JPEG, PNG, GIF, BMP, WebP, TIFF
Videos (6) MP4/M4V, AVI, MKV, FLV, MOV, 3GP
Audio (9) MP3, WAV, FLAC, OGG Vorbis, AAC, M4A, WMA, AMR, OPUS

Instalacion

Requisitos

Compilar desde fuente

git clone https://github.com/ElBecerril/RecuperaGhost.git
cd RecuperaGhost
cargo build --release

El binario queda en target/release/recupe_ghost.exe (Windows) o target/release/recupe_ghost (Linux/macOS).

Uso

Modo interactivo

./recupe_ghost

Presenta un menu inteligente donde puedes:

  1. Seleccionar origen con deteccion automatica:
    • Memorias USB / discos externos (auto-detectados)
    • Archivos de imagen (.img, .dd, .raw) encontrados en el directorio actual
    • Ruta manual para usuarios avanzados
  2. Elegir que tipos de archivo buscar (fotos, videos, audio)
  3. Escanear con barra de progreso en tiempo real
  4. Recuperar los archivos encontrados a una carpeta organizada

Modo batch (CLI)

# Buscar todo en una imagen de disco
./recupe_ghost disco.img

# Solo fotos, salida personalizada
./recupe_ghost disco.img --fotos -o recuperados

# Solo videos y audio
./recupe_ghost /dev/sdb1 --videos --audio

# Ayuda
./recupe_ghost --help

Entradas soportadas

  • Imagenes de disco: .img, .dd, .raw
  • Dispositivos Windows: \\.\PhysicalDrive1
  • Dispositivos Linux/macOS: /dev/sdb1

Salida

Los archivos se organizan automaticamente:

RecupeGhost_20260216_143022/
  fotos/    -> recovered_0001.jpg, recovered_0002.png, ...
  videos/   -> recovered_0003.mp4, recovered_0004.avi, ...
  audios/   -> recovered_0005.mp3, recovered_0006.wav, ...

Como funciona

RecupeGhost escanea byte por byte buscando firmas de archivo (magic bytes) en el disco:

  1. Lee el disco en bloques de 1 MB con overlap para no perder firmas en fronteras
  2. Cuando encuentra una cabecera conocida, valida con verificaciones adicionales para desambiguar formatos que comparten firma (ej. RIFF -> WebP vs AVI vs WAV)
  3. Busca el footer del archivo dentro del buffer actual (sin seeks extra) o usa el tamano maximo del formato
  4. Extrae los bytes y los guarda organizados por categoria

Escaneo multi-hilo inteligente:

  • Discos fisicos (USB/HDD): 1 hilo, 100% secuencial (sin seeks aleatorios), eficiente incluso en memorias USB lentas
  • Imagenes de disco (SSD/NVMe): auto-detecta CPU cores y divide el archivo en segmentos paralelos (hasta 8 hilos), acelerando el escaneo 2-6x
  • Overlap entre segmentos garantiza que ninguna firma se pierda en fronteras
  • Barra de progreso y tiempo estimado en tiempo real

Compatibilidad con discos fisicos (Windows):

  • Detecta automaticamente memorias USB y discos externos
  • Obtiene el tamano del disco via IOCTL_DISK_GET_LENGTH_INFO
  • Lecturas alineadas a 512 bytes (sector size) como requiere Windows
  • Requiere ejecucion como Administrador para acceder a discos fisicos

Auto-actualizacion

RecupeGhost verifica automaticamente si hay una nueva version disponible en GitHub Releases al iniciar:

  1. Consulta la API de GitHub para obtener la ultima release
  2. Compara la version con la actual usando versionado semantico
  3. Si hay una nueva version, muestra un aviso y pregunta si deseas actualizar
  4. Descarga el nuevo binario con barra de progreso y reemplaza el ejecutable
  5. Si no hay internet o falla algo, continua normalmente sin bloquear

La actualizacion funciona en Windows, Linux y macOS. En Windows usa la tecnica de renombrar el .exe en ejecucion para poder sobreescribirlo.

Arquitectura

src/
  main.rs              -> Punto de entrada, CLI con clap, modo interactivo/batch
  banner.rs            -> Banner ASCII y branding
  drives.rs            -> Deteccion de discos por plataforma (Windows/Linux/macOS)
  signatures/mod.rs    -> 21 firmas de archivo (magic bytes, extra_check, footer)
  scanner/mod.rs       -> Motor de escaneo multi-hilo por file carving + IOCTL + 9 tests
  recovery/mod.rs      -> Extraccion de archivos a carpetas organizadas
  ui/mod.rs            -> Menus interactivos con seleccion inteligente de origen
  updater.rs           -> Sistema de auto-actualizacion via GitHub Releases

Tests

cargo test

14 tests automatizados:

  • Deteccion de las 10 firmas principales
  • Desambiguacion RIFF (WebP vs AVI vs WAV)
  • Desambiguacion OGG Vorbis vs OPUS
  • Deteccion de footer JPEG
  • Flujo completo de recuperacion
  • Calculo de segmentos para escaneo paralelo
  • Seleccion automatica de hilos (dispositivo vs archivo)
  • Consistencia multi-hilo (1 vs N hilos, todas las categorias)
  • Deteccion de firmas en frontera de segmento
  • Parseo de versiones y busqueda de assets (updater)

Contribuir

Las contribuciones son bienvenidas. Consulta CONTRIBUTING.md para la guia de contribucion.

Licencia

Este proyecto esta licenciado bajo la GNU General Public License v3.0. Consulta el archivo LICENSE para los detalles completos.

Autor

El_Becerril - YouTube

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages