2017-02-22 19 views
2

정보를 추출해야하는 바이너리 파일이 있습니다. 압축 파일이고 파일의 처음 3 글자는 입니다. zip LZ 대체 및/또는 허프만 코딩이이 파일을 압축하는 데 사용되고 있음을 확신합니다. 파일은 .RAR, .ZIP 등으로 정규 아카이브 형식을 따르지 않는 그러나알 수없는 압축 파일에서 데이터 추출

내가 파일을 읽으려고 다음과 같은 스키마를 발견 Part (C) is truncated to make it fit the figure

파일은 3 부분으로 구성되어 있습니다 : 122,105112101200

부 (B)리스트이다 :

부품 (A)은 16 바이트이며, 다음 문자 값 서명 로서 8 바이트를 포함하는 헤더를 나타낸다 주소 (271)의 각 주소는 특정 주소 (C)의 기록 시작 지점이라고 생각하는 파일의 일부입니다. 부분 (C)이 정확히 언제 시작 이후

부품 (C)는, 실제 데이터

선두 어드레스 (도면 중 716) 부분 (C)의 첫번째 레코드 (청크) 주소를 나타내고있는 부분 (B)는 파트 (B)가 끝나고 파트 (C)가 시작되는 주소 인 첫 번째 주소를 끝내고 파트 (C)가 끝난 후에 파일이 끝나기 때문에 파트 B의 목록의 마지막 주소는 파일의 끝을 가리 킵니다. 마지막 부분 (C)의 마지막 레코드 (청크)가 끝납니다.

그림에서 볼 수 있듯이 부분 (C)의 레코드 (청크)를 잘라내야 만했습니다. 그림에서 볼 수 있듯이 첫 번째 레코드 (청크)의 길이는 472 바이트입니다.

각 청크는 길이가 같지 않으므로 길이가 동일하지 않습니다. 또한 가장 큰 레코드의 길이는 헤더 (바이트 13,14,15,16)에 저장됩니다. 이는 955 (187,3,0,0)입니다. 압축 파일을 읽는 동안 왜 유용 할 지 모릅니다.

모든 레코드는 2 바이트 (120,218)로 시작합니다. 끝 문자는 레코드별로 반복적으로 기록되지 않으므로 실제로 매우 임의적으로 보입니다.

레코드 끝에 huffman tree 또는 huffman 테이블 사이의 유사성은 보이지 않지만 파일을보기 위해 여기에 업로드했습니다.

파일에서 압축 된 데이터를 추출하는 데 도움이되는 정보는 정말 감사하겠습니다.

Download Part (C)

답변

3

(C) 부분의 각 행은 ZLIB 압축 청크 파일이다.

처음 두 바이트는 zlib 서명 인 120218이고 마지막 4 바이트는 adler32 여야합니다.

+0

일반적인 zlib 형식 – Rassam