Cómo (intentar) recuperar tus datos tras un cuelgue

Seguimos extrayendo consecuencias prácticas del "ataque en frío"...

Aunque ya dediqué un artículo completo a valorar las repercusiones del famoso "ataque en frío", en esta nota iré un paso más allá, intentando que lo aprendido a partir de ese ataque pueda ser aprovechado en nuestro beneficio como usuarios comunes de ordenadores.

Supongamos que utilizas un sistema Linux y súbitamente el programa donde estabas escribiendo un valioso documento se cuelga. Otro caso mucho más frecuente es que pierdas por error todo lo que habías editado mediante Firefox (un artículo o un comentario para un blog, por ejemplo), tal vez simplemente porque cerraste la pestaña antes de guardar lo escrito. ¿Es posible recuperar esos datos de alguna manera, en vez de tener que recomenzar desde cero? ¿Qué puede hacerse?

Casi mejor empezaremos por decir lo que no debe hacerse. Lo que no debe hacerse es lo que todos solemos hacer: volver a arrancar el navegador (por ejemplo), para ver si los datos "mágicamente" son recuperados desde la caché y nuestra pesadilla se evapora. O arrancar de nuevo OpenOffice para ver si podemos recuperar algún rastro. ¿Por qué no es buena idea? Porque volver a arrancar ese programa eleva las posibilidades de que el espacio de memoria RAM donde aún estaban nuestros datos se sobreescriba, perdiéndolos así quizás definitivamente...

Para intentar recuperar datos desde la RAM hemos de procurar exactamente lo contrario: no arrancar ningún programa nuevo e intentar valernos del mínimo de procesos nuevos posible para tratar de recuperar la información.

En todo caso hay unos pocos comandos imprescindibles, aunque el riesgo de que sobreescriban el fragmento de RAM que nos interesa no es muy alto.

Algo que podemos hacer es obtener cuando antes el contenido de la memoria y volcarlo a un fichero en nuestro home mediante el siguiente comando:

dd if=/dev/mem of=/home/usuario/mi_ram

o también:

sudo cat /dev/mem > ~/mi_ram

Los anteriores comandos obtienen un volcado de la memoria completa. Si recordamos una cadena concreta (y lo más específica posible) del texto que estábamos tecleando, podemos hacer algo mucho más eficiente:

sudo cat /dev/mem | strings > ~/mi_ram

que almacenará solamente las cadenas ASCII imprimibles. A continuación podemos buscar en nuestro fichero mi_ram la cadena concreta mediante:

grep 'cadena' ~/mi_ram

En el (raro) caso de que conociéramos el identificador del proceso (PID) que se colgó, tendremos otra alternativa más directa a nuestro genérico comando cat:

sudo gcore -o ~/mi_coredump pid

que sólo nos volcará la memoria correspondiente a ese proceso concreto.

Otra posibilidad. Imaginemos que el cuelgue de la aplicación se debe a un fallo momentáneo en la corriente o a otra circunstancia que provoca un reinicio automático. En este caso, si estuviéramos prevenidos y dispusiéramos de reflejos suficientes, deberíamos procurar que el reinicio nuestro sistema linux se realizara en el modo single, para evitar la carga de las X y disponer de más memoria aún no reescrita. Como podemos ver, estamos cada vez más cerca de los supuestos iniciales del ataque en frío. De hecho quizás también podríamos recuperar algunos datos desde un reinicio en frío si sólo han transcurrido unos pocos segundos desde el apagado y hacemos además un arranque en modo single.

También es posible realizar un volcado de nuestra partición swap, donde también pudieran encontrarse los datos que tratamos de recuperar. Si no lo recordamos, localizamos cuál es nuestra partición en /etc/fstab (supongamos hda5) y lo volcamos a disco así:

dd if=/dev/hda5 of=/home/usuario/mi_swap

A continuación lo convertimos a texto con el comando strings y realizamos la búsqueda con grep como explicamos antes.

Por último, un experimento sencillo. Iniciamos la edición de un fichero (con vi o nano) sin darle siquiera nombre ni guardarlo en ningún momento, y tecleamos lacadenaabuscar. Cerramos abruptamente el terminal. Utilizamos luego cualquiera de los comandos expuestos y buscamos lacadenaabuscar en el volcado de memoria. En mi caso la pude localizar sin problemas.

 

Referencias:

Comentarios

Selecciona arriba tu forma preferida de visualizar
los comentarios y pulsa el botón para guardar tus
preferencias. Éstas sólo se recordarán para tus
próximas visitas si eres usuario registrado.
No me funciona por anónimo
En Debian por anónimo
En Debian (2) por anónimo
Pues tampoco por anónimo
interesante por anónimo
Live cd por anónimo
Con una live por anónimo
Volcado de memoria por anónimo
¡Qué susto por guannais
Teorizando... por mortadelo
Volcado memoria por anónimo
por diossssss por anónimo
ese texto me suena... por anónimo
Y en Windows? por anónimo
WIndows? por anónimo
Re: Y en Windows? por anónimo
Windows por bledEX
por dioss... por anónimo
Je je por anónimo
Un volcado de RAM por anónimo
USB por anónimo
resultado.. por anónimo
Binario por anónimo

Opinar

Los comentarios publicados en este sitio expresan sólo la opinión de su autor, quien será el único responsable de los mismos. La publicación de cualquier comentario no supone en absoluto la conformidad del responsable de este sitio con su contenido.

Como norma general, en este sitio no se publican comentarios que incluyan datos personales, ni direcciones de correo, ni ninguna otra forma de establecer contactos privados o comerciales, así como comentarios que no aportan nada, fuera de tema o que no se ajustan a la netiqueta, la ortografía o la educación.

Para poder enviar tus comentarios has de permitir las cookies del sitio.

Por favor, escribe arriba el resultado de la operación planteada. Gracias.
  • Etiquetas HTML permitidas: <a> <em> <strong> <ul> <ol> <li> <p> <u> <br><strike> <blockquote> <div>

Más información sobre las opciones de formato...