Mamy tutaj interesującą dyskusję na temat usuwania plików na urządzeniach z systemem iOS. Pytanie brzmiało: jeśli usunę plik za pomocą NSFileManager, co się dzieje pod maską?
Rozumiem, że usuwanie odbywa się poprzez usunięcie odpowiedniego wpisu z tabeli systemu plików.
Argument licznika polega na tym, że uchwyt pliku pozostaje w jakiś sposób i ustawiana jest tylko flaga oznaczająca plik jako usunięty. Jeśli użytkownik miał dostęp root do urządzenia z systemem iOS, mógł potencjalnie zresetować tę flagę i odzyskać zawartość pliku.
W obu przypadkach zgadzamy się, że rzeczywista zawartość pliku nie zostanie nadpisana, a zwykłe bajty nadal istnieją w pamięci flash / na dysku, dopóki blok nie zostanie zajęty przez inny plik.
Pomysł jest teraz taki: jeśli druga wersja jest prawdziwa, przed usunięciem możemy nadpisać plik treścią jednobajtową (nawet jeśli ten bajt zostanie zapisany w nowej lokalizacji na dysku flash bez faktycznego nadpisywania starej zawartości). Jeśli plik zostanie odzyskany, dostępna będzie tylko nadpisana zawartość jednobajtowa.
Pamiętaj, że nie mówimy o analizie kryminalistycznej dysku flash, która może odzyskać oryginalną zawartość pliku.
Podsumowując:
- W jaki sposób usuwanie pliku na iOS działa wewnętrznie?
- Czy podejście zastępujące zapobiega cofnięciu?