Есть ли в вашей zip-библиотеке параметр для обработки потока как текстового или двоичного? Похоже, он обрабатывает его как текст и изменяет разделитель конца строки (некоторые приложения делают это, чтобы убедиться, что он соответствует целевой платформе). Если вы можете сказать, что данные должны обрабатываться как двоичные, это может помочь.