2024.12.25
Wszystko oczywiście w celach edukacyjnych i aby pokazać, że nasze wiadomości mogą nie być tak bezpieczne, jak nam się wydaje.
Niedawno Instagram zabronił nagrywania ekranu podczas wyświetlania "jednorazowych" mediów, co skłoniło mnie do poszukiwań innego rozwiązania. Odzysk wideo jest szczególnie upierdliwy, bo film jest wysyłany do użytkownikach w częściach, które trzeba poskładać. Dodatkowo pliki są porozrzucane po różnych katalogach, ale w tym poradniku wyjaśnię wszystko krok po kroku.
Na początku otwieramy Instagrama, wyświetlamy (po raz pierwszy) interesujące nas wideo (koniecznie trzeba obejrzeć je w całości) i od razu zamykamy aplikację.
Jak widać, po zastosowaniu poprzedniej metody, dostalibyśmy tylko miniaturkę filmu.
Przechodzimy więc do /data/data/com.instagram.android/cache/ExoPlayerCacheDir/videocache/
i włączamy sortowanie według daty modyfikacji (od najnowszej). Naszym oczom ukaże się kilka katalogów podpisanych numerkami. Interesuje nas pierwszy, czyli najpóźniej zmodyfikowany.
Wchodzimy do katalogu, znów upewniamy się, że wybrane jest sortowanie od najnowszych plików i przyglądamy się pierwszemu z nich. Data i czas modyfikacji powinna pokrywać się z czasem, kiedy odtworzyliśmy film. Jeśli tak nie jest, szukamy dalej. Należy zwrócić uwagę, że pliki wideo póki co nie otworzą się, bo jak wspomniałem, są w częściach.
Kopiujemy część nazwy pliku do pierwszej kroki, czyli przed ".null...".
Teraz wracamy do katalogu videocache
i szukamy wszystkich plików zaczynających się od skopiowanego fragmentu. Polecam cierpliwie poczekać, aż eksplorator znajdzie wszystkie pliki, bo w przeciwnym wypadku nie będziemy mogli zrekonstruować filmu.
Kopiujemy znalezione pliki do katalogu roboczego w pamięci zewnętrznej, znów sortujemy po dacie modyfikacji i włączamy widok szczegółów, aby widzieć jak największe fragmenty długich nazw plików.
Jeden z plików będzie miał po ".null." inny numer niż pozostałe, to ścieżka audio. Zostawiamy go (póki co nie wiem jak odzyskać dźwięk), a resztę numerujemy w kolejności od najstarszego do najnowszego i zmieniamy rozszerzenia na .mp4.
Te pliki to właśnie części naszego nagrania, a najstarszy z nich (1.mp4) powinien dać się odtworzyć, przynajmniej do pewnego momentu, po którym odtwarzacz wyświetli błąd.
Przechodzimy teraz do Termuxa. Wpisujemy polecenia su
, aby wejść w tryb roota oraz cd /storage/emulated/0/
, aby przejść do pamięci zewnętrznej urządzenia, po czym również przy użyciu cd
nawigujemy do katalogu roboczego, który stworzyliśmy.
Teraz tworzymy nasze finalne wideo. Najpierw kopiujemy 1.mp4 przy użyciu cp 1.mp4 final.mp4
, a następnie plik po pliku dopisujemy zawartość kolejnych części (bez pliku z audio) do końcowego filmu — cat 2.mp4 >> final.mp4
, cat 3.mp4 >> final.mp4
i tak dalej. Po każdej takiej operacji warto wrócić do eksploratora plików i odtworzyć wideo. Jeśli pomimo dodania kolejnej części, film zawiesza się w tym samym momencie lub nagle przeskakuje do innego fragmentu, nasze części są zamienione. W takiej sytuacji powinniśmy usunąć plik final (rm final.mp4
) i zacząć od nowa, ale tym razem zamiast fragmentu powodującego problem, testując inny (zwykle następny) z nich. W moim przypadku fragmenty 4.mp4 i 5.mp4 były zamienione.
Gotowe! Film final.mp4 powinien teraz dać odtworzyć się w całości, a my możemy skopiować go gdzieś indziej i usunąć katalog roboczy.