Все решение в самом способе хранения информации... в действительности файлы записаны не последовательно бат к байту, на физической поверхности диска, а в очень разных местах с алгоритмами сборки...
и есть файловые системы с файловой таблицей типа NTFS - там записано в каких секторах диска. какие части файла записаны ...
Программы восстановления сканирую поверхность побайтово и ищут алгоритмически связанные области, если в конечном итоге области достаточны для объединения \ совпадают их атрибуты\ область конвертируется в файл и сохраняется для пользователя.
(на рисунке схема очень примитивная , но она указывает на главное, есть дорожки , сектора и намагниченные и размагниченные байтики , которые и ищут, группируют в файлы программы восстановления)