# Łączenie plików rozrzuconych na dysku ###### Tagi: `UJ` `prezentacja` Jakub Mędrek --- # Fragmentacja ||1|2|3|4|5|6| |-|-|-|-|-|-|-| |1:|A|A|B|C|D| | |2:|A|A| |C|D| | |3:|A|A|E.001|C|D|E.002| **Dyski SSD** -- w przeciwieństwie do dysków HDD nie używają algorytmów defragmentacji, jeden plik może być w wielu kawałkach. --- # Format danych Zrzut dysku, bez znajomości systemu plików. Narzędzia do wykonywania kopii -- `dd` ![](https://i.imgur.com/ExbfihI.png) --- # Typy plików Tylko duże pliki ulegają fragmentacji: - **obrazki** - video - dokumenty (docx, pdf) --- # Schemat działania ```sequence main->filtrowanie: Pozostaw tylko bloki\ndanego typu (obrazy, video) Note over filtrowanie: Podziel bloki na nagłówki\ni kolejne filtrowanie->main: main->łączenie: Połącz bloki ze sobą Note over łączenie: Zbadaj podobieństwo kolejnych bloków łączenie->main: ``` 1. Odczyt kopii dysku fragment po fragmencie 2. Oznaczenie fragmentów pochodzących od interesujących nas plików 3. Zebranie fragmentów w grupy (z tego samego pliku) 4. Połączenie fragmentów 5. Eksport odzyskanych plików --- # Odczyt kopii dysku Archiwum wykonane za pomocą `dd` -- surowe dane --- ### Oznaczenie fragmentów - Duża entropia danych - W plikach jpg plik jest podzielony "markerami": 0xFF00 - 0xFFFF - drugi bit - możliwe tylko: 00, [C4 : FE], FF - początek i koniec obrazu oznaczone są dodatkowymi markerami - Możliwe użycie zewnętrznej biblioteki do odczytania danych o dysku, aktualnie parametry są wpisywane ręcznie --- ### Grupowanie i łączenie fragmentów A := Koniec nagłówka obrazu (ostatnia linia, wysokość określona w jpg) B := Początek doklejonego obrazu p := próg podobieństwa (0-256) Histogram opisany trzema liczbami (RGB) ```python= if abs(A[R] - B[R]) < p: weight += 1 ``` biblioteka w C --- # Eksport plików Założenie, że kolejny obrazek zaczyna się po poprzednim. Można odrzucić nagłówki, wybieramy ten z największym podobieństwem. Algorytm zachłanny ![](https://i.imgur.com/KtaH3om.png) ---
{"metaMigratedAt":"2023-06-14T22:08:46.126Z","metaMigratedFrom":"YAML","title":"Łączenie plików rozrzuconych na dysku","breaks":true,"slideOptions":"{\"transition\":\"slide\"}","contributors":"[{\"id\":\"0679b14d-418e-479f-aed4-7764c9adc7ad\",\"add\":2343,\"del\":277}]"}
    215 views