Nous avons ici une discussion intéressante sur la suppression de fichiers sur les appareils iOS. La question était la suivante : si je supprime un fichier en utilisant NSFileManager, que se passe-t-il en coulisse ?
De ce que je comprends, la suppression est effectuée en retirant l'entrée du fichier correspondant du tableau du système de fichiers.
L'argument contraire est qu'une poignée de fichiers reste d'une manière ou d'une autre et qu'un seul drapeau est défini pour marquer le fichier comme supprimé. Si l'utilisateur avait un accès root à l'appareil iOS, il pourrait potentiellement réinitialiser ce drapeau et récupérer le contenu du fichier.
Dans les deux cas, nous sommes d'accord sur le fait que le contenu réel du fichier ne sera pas écrasé et que les octets bruts existent toujours sur la mémoire flash/le disque jusqu'à ce que le bloc soit occupé par un autre fichier.
L'idée maintenant est la suivante : si la deuxième version est vraie, nous pourrions écraser le fichier avec un contenu d'un octet avant la suppression (même si cet octet est écrit à un nouvel emplacement sur le disque flash sans écraser réellement l'ancien contenu). Si ensuite le fichier est récupéré, seul le contenu écrasé d'un octet est disponible.
Notez que nous ne parlons pas de l'analyse légale du disque flash qui pourrait peut-être récupérer le contenu du fichier original.
Donc pour récapituler :
- Comment fonctionne la suppression d'un fichier sur iOS en interne ?
- L'approche d'écrasement empêche-t-elle la récupération ?