▄▄██████▄▄
▄▄████████████▄▄
██████████████████████
█████ ████████ █████
█████ ████████ █████
██████████████████████
██████████████████████
██████████████████████
██████████████████████
██████████████████████
██████████████████████
██████ ██████ ██████
▀▀▀▀ ▀▀▀▀ ▀▀▀▀
👻 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.
| 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 |
- Rust 1.70+
git clone https://github.com/ElBecerril/RecuperaGhost.git
cd RecuperaGhost
cargo build --releaseEl binario queda en target/release/recupe_ghost.exe (Windows) o target/release/recupe_ghost (Linux/macOS).
./recupe_ghostPresenta un menu inteligente donde puedes:
- 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
- Elegir que tipos de archivo buscar (fotos, videos, audio)
- Escanear con barra de progreso en tiempo real
- Recuperar los archivos encontrados a una carpeta organizada
# 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- Imagenes de disco:
.img,.dd,.raw - Dispositivos Windows:
\\.\PhysicalDrive1 - Dispositivos Linux/macOS:
/dev/sdb1
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, ...
RecupeGhost escanea byte por byte buscando firmas de archivo (magic bytes) en el disco:
- Lee el disco en bloques de 1 MB con overlap para no perder firmas en fronteras
- Cuando encuentra una cabecera conocida, valida con verificaciones adicionales para desambiguar formatos que comparten firma (ej. RIFF -> WebP vs AVI vs WAV)
- Busca el footer del archivo dentro del buffer actual (sin seeks extra) o usa el tamano maximo del formato
- 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
RecupeGhost verifica automaticamente si hay una nueva version disponible en GitHub Releases al iniciar:
- Consulta la API de GitHub para obtener la ultima release
- Compara la version con la actual usando versionado semantico
- Si hay una nueva version, muestra un aviso y pregunta si deseas actualizar
- Descarga el nuevo binario con barra de progreso y reemplaza el ejecutable
- 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.
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
cargo test14 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)
Las contribuciones son bienvenidas. Consulta CONTRIBUTING.md para la guia de contribucion.
Este proyecto esta licenciado bajo la GNU General Public License v3.0. Consulta el archivo LICENSE para los detalles completos.
El_Becerril - YouTube