Qui abbiamo un'interessante discussione sulla cancellazione dei file sui dispositivi iOS. La domanda era: se cancello un file usando NSFileManager, cosa sta succedendo sotto il cofano?
La mia comprensione è che la cancellazione viene eseguita rimuovendo la voce corrispondente dalla tabella del file system.
L'argomento contatore è che un handle di file rimane in qualche modo e viene impostato solo un flag che contrassegna il file come cancellato. Se l'utente ha avuto accesso root al dispositivo iOS, potrebbe potenzialmente ripristinare quel flag e recuperare il contenuto del file.
In entrambi i casi siamo d'accordo sul fatto che il contenuto del file reale non verrà sovrascritto e che i normali byte esistano ancora nella memoria flash / disco finché il blocco non sarà occupato da un altro file.
L'idea è ora: se la seconda versione è vera, potremmo sovrascrivere il file con un contenuto di un byte prima dell'eliminazione (anche se quel byte viene scritto in una nuova posizione sull'unità flash senza sovrascrivere il vecchio contenuto) . Se il file viene ripristinato, è disponibile solo il contenuto di un byte sovrascritto.
Si noti che non stiamo parlando di analisi forensi del flash drive che potrebbero forse recuperare il contenuto del file originale.
Quindi per riassumere:
- In che modo la cancellazione di un file su iOS funziona internamente?
- L'approccio di sovrascrittura previene il fenomeno del disequilibrio?