comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Recuperando datos con foremost

  • 3 Respuestas
  • 5265 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado MYokai

  • *
  • Underc0der
  • Mensajes: 76
  • Actividad:
    0%
  • Reputación 0
  • Deja ya de discutir qué es un hombre bueno; sé uno
    • Ver Perfil
    • Email
« en: Diciembre 18, 2014, 06:44:06 pm »
Debido a mi reciente "pérdida" y como me gusta estudiar lo que uso, he dedicido navegar y navegar para poder hacer esto.

Recuperar datos con... (Foremost)

Lo primero de todo... NO uses el dispositivo desde el que deseas rescatar datos,  absolutamente para nada, ni formatear, ni escanear con diversos softwares de recuperación, ni nada de nada, pues puedes correr el riesgo de dañar sectores o corromper archivos.


Para lo único que necesitamos ese dispotivo es para hacer una imagen en el ordenador y trabajar con ella con foremost.

Para crear la imagen usaremos la utilidad dd.

Abrimos el terminar y escribimos esto:

dd if=/dev/sdb of=/home/image.dd conv=noerror,sync

if = input file
/dev/sdb – Unidad a recuperar
of = output file
/home/image.dd – Imagen que se va a crear, (sobre la que trabajaremos)
conv=noerror,sync - Parámetro que indica al comando dd que ignore los errores y siga generando la imagen del dispositivo aunque se produzcan fallos

Dicho esto... explicamos algo sobre foremost:

Introducción


Es la más importante herramienta de consola para recuperar archivos basados en sus encabezados, pies de página, y las estructuras de datos internas. Este proceso se conoce comúnmente como carving. Foremost puede trabajar en archivos de imagen, tales como los generados por dd, SafeBack, Encase, etc, o directamente en una unidad. Los encabezados y pies de página se pueden especificar a un archivo de configuración o se pueden utilizar modificadores de línea de comandos para especificar los tipos de archivos integrados. Estos tipos incorporados miran las estructuras de datos de un formato de archivo dado, que permite una recuperación más fiable y rápida.

Originalmente desarrollado por la Oficina de la Fuerza Aérea de los Estados Unidos de Investigaciones Especiales y el Centro de Estudios de Seguridad de Sistemas de Información e Investigación. A pesar de que ha escrito para el uso de la ley, está disponible gratuitamente y se puede utilizar como un herramienta general de recuperación de datos. Todo se ha abierto al público en general.

Descarga en http://foremost.sourceforge.net/pkg/foremost-1.5.7.tar.gz

Algunas pruebas de carving se pueden encontrar en http://dftt.sourceforge.net/, (Test 11 y 12).

Foremost: Misión principal... Recuperar archivos de una imagen de disco basado en los encabezados y pies de página especificados por el usuario. Utiliza el file carving.

Qué es el file carving??

El File carving lo podemos definir como el proceso de excavaciónde ficheros en búsqueda de mas ficheros agregados basándonos en su estructura. (Para una definición mas formal se puede consultar ForensicsWiki(http://www.forensicswiki.org/wiki/File_Carving). El uso de File carving en la esteganografía nos ahorrara mucho tiempo si lo sabemos utilizar adecuadamente. Obviamente para estos procesos existen diversidad de programas, pero nosotros veremos, de momento, foremost. Entender como trabaja este tipo de "file carving" será escencial para nosotros, ya que con el uso de este programa, tendremos 2 posibles tipos de resultados:
1. Nos automatiza EXITOSAMENTE todo el trabajo de extracción de archivos agregados por la tecnica EOF.
2. Nos lanza monton de Falsos Positivos.
Para entender esta cuestion sera necesario destacar que foremost trabaja con archivos de configuracion; foremost.conf

Qué contiene foremost.conf??

Aparte de contener muchos comentarios en explicaciones, contienen una mini base de datos de Headers & Footers. Osease que este tipo de file carving se basa en la busqueda de cabeceras que están definidos por una serie de bytes. Si la cadena de bytes se encuentra se busca si tiene un footer en dado caso y se guarda.

Funcionalidad

Ante todo, está diseñado para ignorar el tipo de sistema de archivos subyacente y directamente leer y copiar partes de la unidad en la memoria del ordenador. Toma esas porciones de un segmento a la vez, y mediante un proceso conocido como la búsqueda de archivos, carving, esta memoria busca un tipo de encabezado del archivo que coincide con los que se encuentran en el archivo de configuración de Foremost. Cuando se encuentra una coincidencia, se escriben la cabecera y los datos siguientes en un archivo, deteniéndose cuando en cualquiera se encuentra un pie de página, o hasta que el límite de tamaño de archivo es alcanzado.

El archivo de configuración principal también permite que el usuario pueda personalizar los tipos de archivos que se pueden recuperar y permite el uso de comodines para la coincidencia de patrones.

Se basa en la cabecera del archivo y tipos de pie de página especificados en un archivo de configuración definida por el usuario.

Aunque un editor hexadecimal se puede utilizar para recuperar archivos, (y a veces puede ser la mejor opción), el uso de un editor hexadecimal puede ser tedioso si un gran número de archivos deben ser recuperados. Ante todo es útil como una herramienta de recuperación cuando se trata de archivos no fragmentados, porque la herramienta, en su forma actual, simplemente lee datos hasta que se cumple una condición para hace que se detenga la extracción de datos.

Foremost se utiliza desde la interfaz de línea de comandos, sin opción de interfaz gráfica de usuario disponible. Es capaz de recuperar tipos de archivos específicos, incluyendo jpg, gif, png, bmp, avi, exe, mpg, wav, riff, wmv, mov, pdf, ole, doc, zip, rar, htm, y cpp. Hay un fichero de configuración, (normalmente se encuentra en /usr/local/etc/foremost.conf), que se puede utilizar para definir los tipos de archivos adicionales.

Foremost se puede utilizar para recuperar datos de archivos de imágenes, o directamente de los discos duros que utilizan el ext3, NTFS, o sistemas de archivos FAT. Foremost también se puede utilizar a través de un ordenador para recuperar datos de iPhones.

Configurar los tipos de archivos

En cuanto al tipo de archivos con los que puede trabajar, ya hemos visto que se encuentran en /usr/local/etc/foremost.conf. Podemos editar este archivo para añadir más extensiones.

Por defecto, foremost puede recuperar los siguientes tipos de archivo:

jpg - Soporte para los formatos JFIF y Exif incluyendo implementaciones utilizados en las cámaras digitales modernas.
gif
png
bmp - Compatibilidad con el formato BMP de Windows.
avi
exe - Soporte para binarios de Windows PE, que va a extraer archivos DLL y EXE junto con sus tiempos de compilación.
mpg - Soporte para la mayoría de los archivos MPEG (debe comenzar con 0x000001BA)
wav
riff - Esto extraerá AVI y RIFF ya que utilizan el mismo formato de archivo (RIFF). nota más rápido que ejecutar cada uno por separado.
wmv - Nota También puede extraer -wma archivos, ya que tienen un formato similar.
mov
pdf
ole - Esto va a agarrar cualquier archivo utilizando la estructura de archivos OLE. Esto incluye PowerPoint, Word, Excel, Access y StarWriter
doc - Tenga en cuenta que es más eficiente que ejecutar OLE si desea ignorar todos los otros archivos ole.
zip - Nota es que va a extraer los archivos .jar así porque utilizan un formato similar. Abrir documentos de Office son archivos XML sólo zip'd para que se extraen también. Estos incluyen SXW, SXC, SXI y SX? para los archivos de OpenOffice indeterminados.
rar
htm
cpp - C de detección de código fuente, tenga en cuenta este es primitivo y puede generar documentos distintos de código C.
all - Ejecutar todos los métodos de extracción predefinidos. [Por defecto si no se especifica -t]

Podemos visitar http://www.wotsit.org/, que contiene información sobre cientos de diferentes tipos de archivos, tipos de datos, hardware, detalles de la interfaz y todo tipo de otros datos de programación útil; algoritmos, código fuente, especificaciones, etc.

Cómo funciona foremost??

El uso de foremost es muy sencillo, simplemente es pasarle de argumento el archivo a procesar y automaticamente se generara una carpeta llamada "output" que contendra los archivos encontrados y un fichero de texto llamado "audit.txt" que es el resumen del proceso.

Foremost tambien tiene algunas opciones faciles como -t, TipoDeFichero que nos permite definir que archivos nos interesa u -o, que nos dice la carpeta destino.En este punto es importante definir que si se encuentra actualmente una carpeta "output" y volvemos a correr foremost, nos dara error y habra que definir otra carpeta destino, a menos que usemos el parámetro -T

Pero podemos vernos ante una situación donde una persona agregue al final de un archivo, informacion extra PERO CIFRADA. En ese caso, tendremos un problema, puesto que el archivo foremost.conf tiene la secuencia de bytes de identificarlo, por lo que lo excluiría de manera inmediata y no nos daríamos ni cuenta de la existencia de esa informacion si no lo analizamos manualmente.

Foremost lo descarta automaticamente dejando solo la imagen y al final lo borra, pues no lo identifica como archivo de texto externo. El problema es que, si no se analiza manualmente, no nos daremos cuenta de la existencia del mensaje.

Solución para esta situación??

Una vez se pasa foremost, y se encuentra el archivo, hace una comparacion de lo encontrado con el original, si hay diferencia de bytes, lo recupera con un pequeño script en python:

–----------------------------------------------------------------------------------------------------------------------

Código: Python
  1. #!/usr/bin/python
  2.  
  3. ################################################################################
  4. # Alexander Leary, Scott Fenwick, Melissa Parker
  5. # April 2013
  6. #
  7. # Main file for carving program
  8. # Requires carver_files and carver_partitions carving actions
  9. # All three files require carver_common for database related tasks
  10. ################################################################################
  11.  
  12. import sys
  13. import re
  14. import argparse
  15.  
  16. import carver_files
  17. import carver_partitions
  18. import carver_common
  19.  
  20. ################################################################################
  21. # Function:      main_menu(image)
  22. # Variables: image, choice, type, string, slice, start, stop  
  23. # Launches all program functions by looping through and getting user input
  24. ################################################################################
  25. def main_menu(image):
  26.         while True:
  27.                 choice = raw_input("\
  28.                \n\
  29.                1. Open Database \n\
  30.                2. Print Database Contents \n\
  31.                3. Search Files Database \n\
  32.                4. Carve File \n\
  33.                5. Carve Partition \n\
  34.                6. Exit \nSelection: ")
  35.  
  36.                 if re.match('^Populate|1$', choice, re.IGNORECASE):
  37.                         while True:
  38.                                 choice = raw_input("\t\t1. New Database \n\t\t2. Existing Database \nSelection: ")
  39.                                 if re.match('^new|1$', choice, re.IGNORECASE):
  40.                                         db_info = carver_common.new_db(raw_input("Database Name? "))
  41.                                         carver_common.insert_list_db(db_info,image)
  42.                                         break
  43.                                 elif re.match('^old|existing|2$', choice, re.IGNORECASE):
  44.                                         db_info = carver_common.open_db(raw_input("Database Name? "))
  45.                                         break
  46.                                 else:
  47.                                         print "Bad Input"
  48.                 elif re.match('^Print|2$', choice, re.IGNORECASE):
  49.                         carver_files.query_files_table_db(db_info)
  50.                         carver_partitions.query_partitions_table_db(db_info)
  51.                 elif re.match('^Search|3$', choice, re.IGNORECASE):
  52.                         while True:
  53.                                 type = raw_input("\tType of Search? \n\t\t1. By Name \n\t\t2. By Disk Location \nSelection: ")
  54.                                 if re.match('^Name|1$', type, re.IGNORECASE):
  55.                                         carver_files.query_name_db(db_info, raw_input("\nString to search for? "))
  56.                                         break
  57.                                 elif re.match('^Inode|2$', type, re.IGNORECASE):
  58.                                         carver_files.query_inode_db(db_info, raw_input("\nString to search for? "))
  59.                                         break
  60.                                 else:
  61.                                         print "Bad Input"
  62.                 elif re.match('^File|4$', choice, re.IGNORECASE):
  63.                         while True:
  64.                                 type = raw_input("\tCarve By: \n\t\t1. By Name \n\t\t2. By Location \n\t\t3. File Number \n\t\t4. Back \nSelection: ")
  65.                                 if re.match('^Name|1$', type, re.IGNORECASE):
  66.                                         string = raw_input("\nName to search for? ")
  67.                                         carver_files.query_name_db(db_info, string)
  68.                                         if re.match('^Yes|Y$', raw_input("\nContinue? "), re.IGNORECASE):
  69.                                                 carver_files.carve_file(db_info, image, string)
  70.                                                 break
  71.                                 elif re.match('^Inode|2$', type, re.IGNORECASE):
  72.                                         string = raw_input("\nDisk Location to search for? ")
  73.                                         carver_files.query_inode_db(db_info, string)
  74.                                         if re.match('^Yes|Y$', raw_input("\nContinue? "), re.IGNORECASE):
  75.                                                 carver_files.carve_file(db_info, image, string)
  76.                                                 break
  77.                                 elif re.match('^Number|3$', type, re.IGNORECASE):
  78.                                         string = raw_input("\nDB File Number to search for? ")
  79.                                         carver_files.query_file_number_db(db_info, string)
  80.                                         if re.match('^Yes|Y$', raw_input("\nContinue? "), re.IGNORECASE):
  81.                                                 carver_files.carve_file(db_info, image, string)
  82.                                                 break
  83.                                 elif re.match('^Back|4$', type, re.IGNORECASE):
  84.                                         break
  85.                                 else:
  86.                                         print "Bad Input"
  87.                 elif re.match('^Partition|5$', choice, re.IGNORECASE):
  88.                         carver_partitions.query_partitions_table_db(db_info)
  89.                         while True:
  90.                                 slice = raw_input("\tCarve By: \n\t\t1. By Name \n\t\t2. By Sector \n\t\t3. Back \nSelection: ")
  91.                                 if re.match('^Name|1$', slice, re.IGNORECASE):
  92.                                         string = raw_input("\nPartition name? ")
  93.                                         carver_partitions.query_partition_name_db(db_info, string)
  94.                                         if re.match('^Yes|Y$', raw_input("\nContinue? "), re.IGNORECASE):
  95.                                                 carver_partitions.carve_partition(db_info, image, string)
  96.                                         break
  97.                                 elif re.match('^Sector|2$', slice, re.IGNORECASE):
  98.                                         start = raw_input("\nStart Sector? ")
  99.                                         stop = raw_input("\nStop Sector? ")
  100.                                         carver_partitions.carve_partition(db_info, start, stop)
  101.                                         #query check input
  102.                                         break
  103.                                 elif re.match('^Back|3$', slice, re.IGNORECASE):
  104.                                         break
  105.                                 else:
  106.                                         print "Bad Input"
  107.                 elif re.match('^Exit|6$', choice, re.IGNORECASE):
  108.                         break
  109.                 else:
  110.                         print "Bad Input"
  111.                        
  112. ################################################################################
  113. # Function:      main()
  114. # Variables: image, original_digest, final_digest
  115. # Hashes original file, opens the main menu, the checks the file hasn't been
  116. # altered in any way.
  117. ################################################################################
  118. def main():
  119.        
  120.         arguments = argparse.ArgumentParser()
  121.         arguments.add_argument('-n','--nohash', help='Disable Image Hashing', action='store_true', required=False)
  122.         arguments.add_argument('-i','--image', help='Pass Image Name', action="store", required=False)
  123.         arguments.set_defaults(n=False, nohash=False, i="", image="")
  124.         passed_arguments = arguments.parse_args()
  125.        
  126.         if passed_arguments.image != "":
  127.                 image = passed_arguments.image
  128.         else:
  129.                 image = raw_input("\nImage Name? ")
  130.  
  131.         if not passed_arguments.nohash:
  132.                 original_digest = carver_common.hashfile(image)
  133.  
  134.         main_menu(image)
  135.         if not passed_arguments.nohash:
  136.                 final_digest = carver_common.hashfile(image)
  137.                 if original_digest != final_digest:
  138.                         print "\n\n\n Warning File Altered \n\n\n"
  139.                 else:
  140.                         print "File Unaltered"
  141.         return;
  142.  
  143. if __name__ == "__main__":
  144.         main()
–----------------------------------------------------------------------------------------------------------------------

Este script hay que usarlo una vez pasado foremost con ./carver.py

Soltado el tostón...

A trabajar...


Me reitero en lo importante de crear un archivo de imagen con la utilidad dd, o con las aplicaciones EnCase y SafeBack.

Si el usuario crea un directorio de imagen, a continuación, copia la imagen y el archivo de configuración para ser analizados, a ese directorio.

Mientras se ejecuta foremost, se produce un archivo audit.txt, que contiene las opciones de línea de comandos usadas, información de la ruta y el nombre de la imagen. El nombre más importante se asigna al archivo recuperado, después mide a la imagen en la que se encuentra el archivo, y se muestra la longitud del archivo. La columna denominada "Interior" en el archivo de auditoría indica si el archivo recuperado se encontró fuera del inicio de un sector.

Para recuperar archivos completos, (suponiendo que todo el archivo sigua intacto), se debe prestar atención a los tamaños de los archivos especificados en el archivo foremost.conf. Por ejemplo, el tamaño máximo predeterminado para un archivo PDF es 100,000 bytes, y el valor predeterminado para un archivo html es 50,000 bytes. Se pueden ajustar los tamaños de los archivos en el archivo foremost.conf para producir una recuperación de los archivos PDF y html más grandes, y se puede utilizar la información en la columna "Encontrado en Byte" con la opción -s. Esto hace que sea fácil buscar a través de la imagen y realizar otra recuperación con el archivo PDF y html.

A los archivos que recupera foremost se les asignan nombres numéricos, a partir de 00000000, y agrega la extensión correspondiente.

Abrimos el terminal.

Instalamos foremost con apt-get install foremost

Tecleando foremost -h, para obtener visualizar la ayuda.

-V - Mostrar información de copyright, y sale
-t - especificar el tipo de archivo. (jpeg -t, pdf...)
-d - activar la detección bloque indirecto, (para sistemas de archivos de UNIX)
-T - Tiempo estampar el directorio de salida por lo que no tiene que borrar el directorio de salida cuando se ejecutan varias veces.
-i - especificar archivo de entrada, (por defecto es la entrada estándar)
-a - Escribir todas las cabeceras, No realiza ninguna detección de errores,(archivos dañados).
-b número - Permite especificar el tamaño del bloque utilizado en todo. Esto es relevante para la denominación de archivos y búsquedas rápidas. El valor predeterminado es 512. Ejemplo: foremost -b 1024 image.dd
-k número - Permite especificar el tamaño del fragmento utilizado en foremost. Esto puede mejorar la velocidad si tiene suficiente memoria RAM para ajustar la imagen. Reduce la comprobación que se produce entre trozos de la memoria intermedia. Por ejemplo, si tiene> 500 MB de RAM. es decir. foremost -k 500 image.dd
-w - Sólo escribe el archivo de auditoría, no escribe ningún archivo detectado en el disco
-o - configurar el directorio de salida, (por defecto de salida).
-c - archivo de configuración listo para usar, (por defecto foremost.conf).
-s número - Se salta bloques de números en el archivo de entrada antes de comenzar la búsqueda de cabeceras. es decir. foremost -s -t 512 jpeg -i / dev / sdb.
-q - activar el modo rápido. La búsqueda se realiza en límites de 512 bytes. El modo rápido no debe utilizarse al examinar los sistemas de archivos NTFS, porque NTFS almacena archivos pequeños dentro de la tabla maestra de archivos.
-Q - activar el modo silencioso. Suprime los mensajes de salida.
-v - modo detallado. Registra todos los mensajes en pantalla.
-n - no hace distinción entre mayúsculas y minúsculas al buscar el header y footer del archivo.
-y - hace distinción entre mayúsculas y minúsculas al buscar el header y footer del archivo.

El modo de uso es:

foremost[-h][-V][-d][-vqwQT][-b<blocksize>][-o<dir>] [-t<type>][-s<num>][-i<file>]

foremost -t tipos-de-datos-a-rescatar -i de-donde-rescatar -o donde-dejar-lo-rescatado

Pero mejor lo vemos con unos ejemplos:

Buscar jpeg saltando los primeros 100 bloques

foremost -s 100 -t jpg -i image.dd

Sólo genera un archivo de audit y lo imprime en pantalla

foremost -av image.dd

Busca todos los tipos definidos

foremost -t all -i image.dd

Busca gif y pdf's

foremost -t gif,pdf -i image.dd

Busca documentos de office y archivos jpeg en un sistema Unix

foremost -vd -t ole,jpeg -i image.dd

Se ejecuta con todas las opciones por defecto

foremost image.dd

Otros ejemplos:

foremost -i /home/image.img

foremost -i /home/image.img -o /home/recuperados

foremost -a -i /dev/sdb -o /home/recuperados

foremost -t all -i /dev/sdb -o /home/recuperados

foremost -t jpeg -i /dev/sdb

foremost -t pdf -T -i /dev/sdb

foremost -b 1024 image.dd

foremost -k 500 image.dd

foremost -s -t 512 jpeg -i / dev / sdb

./carver.py unfichero.algo output/directorio/00000000.algo

Podeis descargar carver.py de

https://mega.co.nz/#!q9NjmQrb!Pmgtd_UgeFeQ92K0DIrEr18aUB7QO4iz3kIkqhQbqBM

https://github.com/ForensicTools/File-Carver/blob/master/carver.py

Y aquí algunos documentos que encontré de interés:

Thesis – An analysis of disc carving techniques https://mega.co.nz/#!ntM2HSSC!U5O3iT2CfI7N0x6wi0ysXIa9YmAJ1y_zh_ev_NJdSlo

Full Circle Issue 59 – Foremost https://mega.co.nz/#!KgMGBRZC!I8Qef6OvcDmVMVnC4ehD2-LBoZ-9FOvqJ-ZXoQ7dWNc

Analysis of 2006 DFRWS forensic carving Challenge https://mega.co.nz/#!7l8kwCiS!6H5_5spyvi7eVyt76psiIRpwDlTwkPSkW2srtK5jbuA

Advanced Carving https://mega.co.nz/#!fsshARZI!ywGWbZgYg-Ya8DS9wFW1MaP75Iyn21DE9QK_rI0Sjz0

Forensics with Linux https://mega.co.nz/#!L8Mz3a5I!kN4Qw3-G1J_bhxWc1BqQQn704doTbxjxg6_mP9Om6AE

Saludos y espero que os guste y os sea de utilidad esta información.

PD: Pido perdón si hay algo que no se entienda bien, pero mi inglés no es muy técnico, y la mayoría del material que he encontrado está en inglés, por lo que las traducciones tampoco lo son. Lo siento... no soy bilingüe  :'(

Igulamente pido perdón por no poner bibliografías ni referencias, pero han sido muchos los sitios a los que he recurrido en búsqueda de información útil.
« Última modificación: Diciembre 18, 2014, 06:52:43 pm por ANTRAX »
Scanned today; Hacked tomorrow.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5411
  • Actividad:
    20%
  • Reputación 33
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #1 en: Diciembre 18, 2014, 06:53:15 pm »
Excelente aporte bro!! Me viene muy bien!
Muchisimas gracias!!
Saludos!
ANTRAX


Desconectado Byakko

  • *
  • Colaborador
  • *
  • Mensajes: 95
  • Actividad:
    0%
  • Reputación 1
    • Ver Perfil
  • Skype: Daligon
« Respuesta #2 en: Diciembre 30, 2015, 11:57:30 am »
Lastima que este post lo vi tan tarde. quizas me hubiera salvado de algunas infecciones que tuve en los ordenadores de la empresa y perdieron toda la data.

Gracias por tal aporte !!!! te pasaste.

Desconectado selohu

  • *
  • Underc0der
  • Mensajes: 316
  • Actividad:
    10%
  • Reputación 2
    • Ver Perfil
  • Twitter: @selohu
« Respuesta #3 en: Septiembre 28, 2016, 08:33:33 pm »
Esto es solo para linux o vale en windows?.

 

¿Te gustó el post? COMPARTILO!



Bulk_extractor tool para sacar datos sensibles de disco duro

Iniciado por Rootkit_Pentester

Respuestas: 0
Vistas: 2843
Último mensaje Enero 12, 2017, 09:21:14 am
por Rootkit_Pentester
Borrado de Datos comprometedores para no ser Recuperados en Linux

Iniciado por Snifer

Respuestas: 8
Vistas: 5655
Último mensaje Mayo 26, 2014, 09:24:31 am
por Gn0m3
Ddrescue - Herramienta de recuperación de datos

Iniciado por COCO+

Respuestas: 1
Vistas: 2852
Último mensaje Abril 02, 2015, 04:09:53 am
por jptidus
PhotoRec [Recuperacion de datos]

Iniciado por ANTRAX

Respuestas: 7
Vistas: 4338
Último mensaje Julio 22, 2014, 03:11:53 am
por matzcontreras
Recuperando Información con Scalpel

Iniciado por rollth

Respuestas: 4
Vistas: 3153
Último mensaje Noviembre 15, 2018, 10:32:03 am
por baron.power