Pytanie:
Nieznany algorytm kompresji
search4everNever
2014-08-19 18:16:00 UTC
view on stackexchange narkive permalink

Mam dane, które są skompresowane, ale nie mogę znaleźć algorytmu kompresji Dane są częścią większego pliku, z którego znam układ, więc udało mi się dowiedzieć kilku rzeczy. Co wiem:

  • Nie mam binarnego pliku wykonywalnego, który ładuje dane, mam tylko zaktualizowaną wersję, która nie obsługuje już starego algorytmu kopresji. Torturowałem go na wiele sposobów i po prostu nie zawiera odpowiedniego kodu
  • jest skompresowany (100% pewności)
  • można go zrobić w domu, ponieważ został później zastąpiony (patrz poniżej)
  • na razie brak magicznych liczb
  • to nie jest proste:
    • deflate (zły nagłówek)
    • lzma (zły nagłówek )
    • gzip (zły nagłówek)
    • Quantum (zły nagłówek)
    • Microsoft CAB (zły nagłówek)
    • Bzip2 (zły nagłówek)
    • Zip (zły nagłówek)
  • plik zawierający dane podany jest po zdekompresowaniu, ten układ pliku jest całkowicie odwrócony i nie zawiera żadnych wskazówka
  • może być zaszyfrowana, ale jest mało prawdopodobna ze względu na wymagania dotyczące szybkości
  • jeśli jest zaszyfrowana, daje to samo wyjście przy tych samych danych wejściowych na początku sekwencji (przypuszczalnie na niektórych nieskompresowanych danych znajdujących się w pobliżu)
  • pochodzi z 2001 roku i został zastąpiony przez deflate od
  • S niektóre z tych danych wyświetlają tylko ASCII i nic więcej (znam to z układu pliku kontenera) i mają współczynnik kompresji około 0,30 (wielkość skompresowana / rozmiar nieskompresowany) za każdym razem
  • Nie mam żadnych wcześniej / niestety po danych

EDYCJA: Pierwsze 32 bajty są zapisywane szesnastkowo: b9daed36cb64bedb61b9dd2cb72afd8ee565b0dd2ea00f0afda2c36eb25b0016

Zrobiłem histogramy kilku z tych danych i wszystkie pasują do określonego wzoru. Coś się oczywiście dzieje z potęgami 2, ale nie rozumiem co.

Czy ktoś ma pojęcie, co to może być? Co mogę zrobić, aby zebrać dalsze informacje? Czy wygląda na oparty na Lempel-Ziv? Jeśli tak, jak mogę to odwrócić?

Jeśli nie masz pliku wykonywalnego, skąd masz ten plik? Pokaż także zrzut 16-32 bajtów nagłówka.
Zaktualizowano, aby odpowiedzieć + zrzut szesnastkowy nagłówka
„Wyjście to ASCII i nic więcej” - to w połączeniu ze stosunkiem „około 0,30” w rzeczywistości sugeruje * prosty * schemat kompresji, a nie skomplikowany: dedykowany schemat kompresji tylko tekstu. Czy możemy zobaczyć ten plik?
Zaktualizowany, ponieważ to, co napisałem, wprowadza w błąd, może to być wszystko, ale wyodrębniłem niektóre, które zawierają tylko ASCII, mając nadzieję, że może to uprościć proces cofania, a następnie użyć algorytmu na innych danych spoza ASCII. Niestety nie mogę udostępnić całego pliku, ponieważ nie mam prawa go rozpowszechniać.
Czy próbowałeś skontaktować się z firmą, która wyprodukowała oprogramowanie?
Może zainteresuje Cię to pytanie i odpowiedzi:> [Czy są jakieś narzędzia lub skrypty do identyfikowania algorytmów kompresji w plikach wykonywalnych?] (Https://reverseengineering.stackexchange.com/questions/1463/are-there-any-tools -lub-skrypty-do-identyfikacji-algorytmów-kompresji-w-wykonywaniu)
Czy próbowałeś Signsrch przeanalizować plik binarny? http://aluigi.altervista.org/mytoolz.htm
Tak, to nie dało rezultatu.
Jeden odpowiedź:
w s
2014-08-20 12:09:47 UTC
view on stackexchange narkive permalink
  • Przede wszystkim zapomniałeś o lzo. AFAIR, został wynaleziony w 1996 roku.
  • Po drugie, jest możliwe, że skompresowane dane nie mają odpowiedniego standardowego nagłówka (co sprawia, że ​​wszystkie błędy „nieprawidłowego nagłówka” niekoniecznie są prawdziwe).
  • Po trzecie, histogram nie wygląda jak histogram danych skompresowanych w jednym kawałku, możliwe, że ma jakąś wewnętrzną strukturę (mogą to być plamy z rozmiarami przed nimi?).

Proponuję napisać skrypt, który uruchamia różne algorytmy dekompresji na częściach danych i obserwować wyniki.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...