Witam serdecznie. Chciałbym napisać aplikację która będzie odzyskiwać dane z uszkodzonych partycji itp. Potrzebuję korepetycji (i właśnie nie wiem z czego) z tego jak zbudowane są pliki, jakiej wiedzy prócz programowania będę potrzebował do osiągnięcia sukcesu. Od kilku dni (po śmierci mojego pendrive) jestem tym żywo zainteresowany. Tak wiem, użyłem już TestDisk
i odzyskałem pliki, ale natchnęło mnie to, aby zrobić taki program samemu :) Jeżeli ktokolwiek się na tym zna i jest w stanie pomóc, proszę o wycenę za godzinę lekcji :) Będę wdzięczny!
- Rejestracja:około 4 lata
- Ostatnio:21 dni
- Postów:504


- Rejestracja:prawie 5 lat
- Ostatnio:4 miesiące
- Postów:2420
Od czego zacząć:
-
Pendrive'wy to nadal w większości system plików FAT32 i tutaj radzę zacząć. Najlepiej przeczytać sobie specyfikację tego systemu plików (https://en.wikipedia.org/wiki/File_Allocation_Table oraz https://docs.microsoft.com/pl-PL/windows/win32/fileio/exfat-specification)
-
Po zapoznaniu się ze specyfikacją powinieneś już wiedzieć jak np. FS usuwa plik i być w stanie napisać program do odzyskiwania usuniętych plików jak również taki do ich bezpiecznego usunięcia.
-
Odzyskane pliki mogą być częściowo nadpisane, trzeba więc przestudiować format tych najbardziej popularnych i np. poprawiać nagłówki jeżeli zostały uszkodzone. Niektórych rzeczy nie da się naprawić ale to jest normalne przy tego typu operacjach.
-
Wyższy poziom jazdy to próba software'owego odzyskiwania fizycznie uszkodzonych sektorów np. poprzez wielokrotny odczyt. Tu już przydaje się wiedza o tym jaka elektronika siedzi w pendrive'ie.
-
Jeszcze wyższy poziom to reverse eng. sterownika pamięci flash itp.
PS. Wiele plików ma specyficzne nagłówki np. exe zaczynają się od MZ, a png od PNG. Sa to tak zwane magic numbers lub sygnatury plików. Można po tym rozpoznać prawdpodobny początek pliku w strumieniu byte'ów. Wykorzystuje to np. narzędzie binwalk.
- Rejestracja:około 4 lata
- Ostatnio:21 dni
- Postów:504
@0xmarcin: trafiłem na ten artykuł https://en.wikipedia.org/wiki/Design_of_the_FAT_file_system#FAT i jest tu tysiące rzeczy dla mnie niezrozumiałych, ale tutaj wydaje się być odpowiedź na nurtujące mnie pytania. W przeciągu dłuższego czasu i wielu niepowodzeniach dałbym radę to ogarnąć, jednak zdecydowanie lepiej mi idzie z osobą, która potrafi to wytłumaczyć "innymi słowami". Jeżeli znasz się na tym i byłbyś w stanie udzielić korepetycji napisz do mnie priv :)

- Rejestracja:ponad 21 lat
- Ostatnio:około rok
- Lokalizacja:Kraków
@gswidwa1: Co rozumiesz poprzez śmierć swojego pendrive? ja kupilem na allegro tani pendrive 44zl 512gb, po kilkurazach używania w ogóle go nie widzi. widzy tylko jako nieznane urzązenie usb 0 bajtów. nie mogę na nim użyć ani testDisk ani HDDRegenerator ani format g:
Podejrzewam ze za tą cenę nie ma się co dziwić :) jeśli miałeś podbny problem to jeste bardzo ciekawy w jaki sposób użyłeś na nim hdd regenerator

- Rejestracja:około 6 lat
- Ostatnio:7 dni
- Postów:145
https://docs.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-deviceiocontrol
Jeśli się da, to można wcześniej wykonać:
https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getvolumeinformationa
https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getdiskfreespacea