11 votos

¿Cómo iOS eliminar un archivo técnicamente y puede potencialmente ser recuperados?

Tenemos una interesante discusión acerca de la eliminación de archivos en los dispositivos iOS. La pregunta era: ¿si borro un archivo con NSFileManager, lo que está sucediendo bajo el capó?

Mi entendimiento es que la eliminación se realiza mediante la eliminación de la correspondiente entrada del archivo desde el sistema de archivos de la tabla.

El argumento en contra es que un identificador de archivo permanece de alguna manera, y sólo una bandera se establece que marca el archivo como eliminado. Si el usuario tuviera acceso root en el dispositivo iOS, que potencialmente podría restablecer la bandera y recuperar el contenido del archivo.

En ambos casos estamos de acuerdo en que el real contenido de los archivos no se sobrescriben y la llanura bytes todavía existen en la memoria flash/disco hasta que el bloque está ocupado por otro archivo.

Ahora la idea es: si la segunda versión es verdadera, podemos sobrescribir el archivo con un byte de contenido antes de su eliminación (incluso si ese byte se escribe a una nueva ubicación en la unidad flash sin sobrescribir el contenido antiguo). Si, a continuación, se recupera el archivo, sólo el sobrescrito de un byte contenido está disponible.

Tenga en cuenta que no estamos hablando de análisis forense de la unidad flash que tal vez podría recuperar el contenido del archivo original.

Así que para recapitular:

  • ¿Cómo eliminación de un archivo en iOS trabajar internamente?
  • No sobrescribir el enfoque de prevenir undeletion?

3voto

Gabriel Puntos 1122

Creo que en Unix el sistema de archivo es modificado como sugieren (la entrada se elimina del sistema de archivos de la tabla). En Windows el archivo de la tabla de sistema es modificado, y el archivo es de sólo marcado como eliminado - herramientas de recuperación de datos puede recuperar el archivo. Después de haber visto de Windows de recuperación de aplicaciones creo que el nombre del archivo es también modificado, así que cuando undeleting, es necesario proporcionar el nombre de archivo correcto. Modificar el nombre de archivo significa que si usted crea un archivo con el mismo nombre como el que usted acaba de eliminar, el sistema operativo no tiene que conciliar la existencia de dos archivos con el mismo nombre.

MacOSX y Windows tiene un cubo de basura (papelera de reciclaje) que creo que es implementado una carpeta especial en la que los archivos borrados se copian. Al vaciar la papelera, esta carpeta se purga por la modificación del sistema de archivo de la tabla. Si utiliza NSFileManager, que evita el cubo de la basura (que no existe en iOS de todos modos) así que es un verdadero eliminar. del mismo modo, si "rm" desde una ventana de terminal.

Si crea un nuevo archivo con el mismo nombre que el anterior, en Unix es sólo una nueva entrada en el sistema de archivo de la tabla, pero desde la entrada anterior había sido retirado de la mesa, no sería una ventaja para la creación de la nueva entrada.

Esa es mi creencia, y estoy preparado para la avalancha de votos ;-)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X