Заголовок Zlib (adler32) 1.1.3 - Кратность 31

  • Автор темы kilometrogram
  • Дата начала
K

kilometrogram

#1
Привет, столкнутлся с простой, но в тоже время непонятной задаче связанной с zlib и без помощи не могу разобраться. В первую очередь интересует ряд весьма простых вопросов:

1. зачем нужен, что делает заголовок в 2 байта в zlib (алгоритм adler32) версия 1.1.3?
2. один, возможно умный, человек напаковал кучу файлов zlib (adler32) версией 1.1.3 таким образом, что все заголовки в 2 байта получаются кратны 31 - что означает это магическое число, как он смог его получить, это какой-то конкретный тип сжатия?
3. мне в руки таки попались 2 файла, один сжатый (с выше описанными, для меня, чудесами) и второй распакованный - как определить какие опции применялись при сжатии исходного файла, чтобы в точности получить запакованный с заголовком кратным 31?

p.s. описание zlib 1.1.3 я в интернете нашел, но оно не ответило на вышеуказаннае вопросы http://koeln.ccc.de/archiv/drt/zlib-manual.html , ну и использование zlib тоже смотрел, не нашел ничего полезного в этих вопросах http://zlib.net/zlib_how.html
 

Вложения

lazybiz

Well-known member
03.11.2010
1 339
0
#2
А с чего ты вообще взял, что тот LUA-скрипт что ты приложил, был сжат при помощи zlib ?
 
K

kilometrogram

#3
на то две причины:

1. файл был распакован (не мной) с помощью zlib (adler32) 1.1.3 и тот кто его распаковывал сообщил именно это, к сожалению связаться с ним больше не удается

2. приложение, которое использует вышеуказанный сжатый файл содержит zlib.dll версии 1.1.3
 

lazybiz

Well-known member
03.11.2010
1 339
0
#4
Просто интересно то, что файл запакованный при помощи zlib, в начале должен иметь байты 1F 8B, а твой имеет 78 9С ...
Хотя возможно в целях безопасности программа изменяет первые байты при сохранении файла. У тебя есть исходники приложения которое сжало этот файл?
 
K

kilometrogram

#5
к сожалению, нету, иначе тогда бы я так не мучался)

я смог сделать простой вариант использования zlib в консольном режиме, странно то, что при запаковке файла в конец дописываются буквы Н (русские, если открыть потом сжатый файл notepad++) или байты CD CD CD CD..., их количество зависит от размера CHUNK, странно, ведь их не должно быть

попытался распаковать тот исходный сжатый файл, распаковка отваливается, хотя в распакованном файле не хватает лишь двух строк в конце, а остальное распаковалось верно