Есть данные после окончания блока полезной нагрузки 7zip, что это такое

Обновлено: 24.11.2024

user15321167 Спрашивает: Предупреждение 7-Zip: «Есть некоторые данные после окончания данных полезной нагрузки»
Я только что получил это сообщение об ошибке при попытке извлечь архив с помощью 7- Почтовый индекс:

Скачанный мной rar-архив разбит на несколько частей:

Мне показалось немного странным, что части названы в другом формате ("part1.rar" и "part.1.rar"). Сначала мне пришлось переименовать всю часть в формат типа "part1.rar", чтобы извлечь архив.

Тем не менее, я хотел бы знать, что означает это сообщение об ошибке? Это баг 7-Zip или архив поврежден? Подозрительно ли, что в конце rar-файла «спрятано» больше данных, чем в самом архиве?

Я читал, что это сообщение отображалось из-за ошибки в 7-Zip. Однако этим статьям более 5 лет, и они предлагают обновить 7-Zip, чтобы решить проблему. Но, очевидно, я уже использую более новую версию, чем версия пятилетней давности. Тогда возможно ли, что это все еще ошибка?

Сообщения без ответов

[Решено] Как использовать цикл for для исходного кода с несколькими условиями?

  • Саси
  • 1 минуту назад
  • Ответов: 0

Саси спрашивает: Как я могу использовать цикл for для исходного кода с несколькими условиями?
У меня есть df, как показано ниже:

У меня есть другой фрейм данных как X

Я пытаюсь использовать цикл for в приведенном ниже коде:

Исходный код: (этот код работает, не работает только код цикла for)

Код цикла for: (используя цикл for в исходном коде)

Выдает ошибку, поскольку истинное значение ряда неоднозначно. Используйте пустой, bool(), item(), a.any() или a.all()

[Решено] Circle CI: есть ли встроенный способ запустить задание только для измененных файлов?

  • Виктор Валенте
  • 1 минуту назад
  • Ответов: 0

Виктор Валенте спрашивает: Circle CI: есть ли встроенный способ запустить задание только для измененных файлов?
Я хотел бы настроить задание Circle CI, которое запускает черный средство форматирования кода против только тех файлов python, которые были созданы или изменены в PR, и оставьте остальные в покое.

Я знаю, как это сделать на моем локальном терминале:

Исходя из моего исследования, сделать это с помощью Circle CI не так просто, потому что:

  1. обычный git diff в среде Circle CI ничего не возвращает
  2. имя целевой ветки отсутствует во встроенных переменных окружения

[Решено] displayDialogAsync — как включить заголовок запроса в URL-адрес?

  • Джесон Мартаджая
  • 1 минуту назад
  • Ответов: 0

Джесон Мартаджая спрашивает: displayDialogAsync – как включить заголовок запроса в URL-адрес?
У меня есть сайт, который ожидает настраиваемый заголовок запроса, подобный этому:

Как отправить такой заголовок AuthToken при открытии этого сайта из OfficeJS?

[Решено] Заменить изображение в формате Word docx

  • Брэндон Мур
  • 1 минуту назад
  • Ответов: 0

Брэндон Мур спрашивает: Заменить изображение в формате Word docx
Я пытаюсь заменить изображение в файле Word .docx, используя следующий код на Python:

Я получаю сообщение об ошибке ValueError: Picture Sample.jpg не найден в шаблоне docx. Я создал документ, вставив случайный файл .jpg в пустой документ Word и сохранив его. Я дважды проверил и подтвердил, что это файл .docx. Затем я использовал приведенный выше код, чтобы попытаться изменить изображение, но это не сработало. Я искал в Интернете пару дней и пока не смог найти ничего, что могло бы помочь. Я просмотрел шаблоны docxtpl и пример кода, и кажется, что код ссылается на тег «descr», чтобы найти «Sample.jpg». Однако, когда я просматриваю файл XML replace_picture_tpl.docx, изображение не имеет этого тега. Есть предложения?

[Решено] Запуск пользовательского потока: локальный хост отказался подключаться

  • Дэвид Шочет
  • 1 минуту назад
  • Ответов: 0

Дэвид Шохет спрашивает: Выполняется поток пользователей: локальный хост отказался подключаться
У меня есть приложение blazor. Я использую Azure AD B2C для аутентификации. Когда я пытаюсь запустить вход в пользовательский поток, я получаю

Вот мой файл launchSettings.json:

Это из appsettings.json:

Я знаю, что раньше это работало как локально, так и в рабочей среде, и я не могу понять, что могло сломаться с тех пор. Как я могу диагностировать эту проблему?

[Решено] Обновляемый интерфейс SWIFTUI (потяните, чтобы обновить) не работает в ScrollView

  • Ферраккем Бхуян
  • 1 минуту назад
  • Ответов: 0

Я пытаюсь добавить pull для обновления в ScrollView, но это не работает. Мне интересно, что я делаю неправильно.

[Решено] Как правильно открыть/закрыть диалог в квазаре с помощью реквизита?

  • Янг Л.
  • 1 минуту назад
  • Ответов: 0

Итак, FirstDialog является родительским, а второй — дочерним. Я попытался создать ref в родительском (isOpen = true) и отправить его дочернему. Проблема в том, что реквизит доступен только для чтения, и когда я щелкнул по экрану за пределами диалога, я получил предупреждение об этом. Это потому, что есть встроенное действие для скрытия диалога (мне нужно, чтобы это действие работало). Поэтому я не могу сделать это таким образом:/

Я действительно застрял на этом долгое время, так что спасибо за любую помощь:/

[Решено] Как отобразить значение без ключа после JSON.stringify?

  • Эльджимм
  • 1 минуту назад
  • Ответов: 0

eljimm Asks: Как отобразить значение без ключа после JSON.stringify?
Я пытаюсь отобразить значение ключа после использования JSON.stringify для сбора данных формы и вставить в JSON. Теперь мне нужно значение определенного ключа из этого файла json, но я получаю пару ключ/значение:

В настоящее время мой код для отображения:

Я пытался использовать getItem(), но, похоже, это работает только с локальным хранилищем. Есть ли решение, в котором я могу просто напрямую получить доступ к значению KEY после JSON.stringify()?

[Решено] Интерфейс «Настроить меня» для репозитория Maven не позволяет мне создавать settings.xml без предварительной идентификации развертывания и виртуальных репозиториев

  • Джоуи
  • 1 минуту назад
  • Ответов: 0

Джоуи спрашивает: Интерфейс «Set me up» для репозитория Maven не позволяет мне генерировать settings.xml без предварительной идентификации развертывания и виртуальных репозиториев
Используя приведенное ниже изображение в качестве справки, я есть несколько проблем на данный момент.

Я пытаюсь сгенерировать шаблон settings.xml для maven, чтобы загрузить свои зависимости maven из артефакта. Это все, что я пытаюсь сделать. Я не пытаюсь установить репозиторий развертывания или что-то еще. Я только пытаюсь установить свой прокси-сервер зависимостей для плагинов maven.

Мой репозиторий maven, который будет загружаться/кешироваться из maven Central, называется "joeytest-maven-central-remote".

Когда я нажимаю "Настроить", происходит следующее:

При извлечении архива я получаю предупреждение "Есть некоторые данные после окончания данных полезной нагрузки". Что это значит? Файл поврежден?

По сути, я провел поиск по этой ошибке и 7zip, и несколько версий назад это была известная проблема, но она может быть связана с использованием шифрования RAR для определенных типов данных. На данный момент я еще не проводил никаких исследований, и сегодня у меня нет на это времени, но, возможно, стоит поискать в Google, чтобы посмотреть, что вы найдете.

Каковы типы файлов даты, которую вы сжимаете, и каков примерный размер несжатых данных?

4 ответа 4

Похоже, это повторяющаяся проблема с 7zip. Последнее примечание, которое мне удалось найти, относится к сборке 16.02.

Самые свежие примеры этого связаны с архивами, созданными другими архивами (в основном WinRAR), и я уверен, что ему будет интересно узнать о вашей проблеме с файлом, который был создан в самом 7zip.

Я пытался извлечь файл .gz с помощью 7zip, он остановился на 99%, и появилось ужасное сообщение. Мне пришлось переключиться на PeaZip, и он распаковался нормально, но с предупреждающим сообщением. Извлеченный файл работал нормально. Поэтому я бы посоветовал вам попробовать использовать другую программу.

Переименуйте расширение с .zip на .rar, все будет нормально. Это может быть не сделано из-за сжатия в другой программе и предоставления расширения в виде zip.

Это не имеет особого смысла, ИМО. 7-Zip игнорирует расширения, он смотрит только на структуру файла. ZIP и RAR — это два совершенно разных формата, и смена расширения не исправит файл или неисправный алгоритм.

@gronostaj Это было известное и рекомендуемое исправление до того, как ошибка была устранена (до 7zip v17). Почему это сработало, это вопрос, который вам нужно задать разработчикам.

У меня был быстрый опрос с использованием zip-файла, распространяемого создателями Macrium Reflect. Файл является их "Rescue Media", имя = "pe10_1709x64.zip", на мой взгляд подлинный, отличный и заслуживающий доверия zip-файл.

Я открыл zip-файл в 7Zip, затем щелкнул инструмент «Информация» (панель инструментов вверху справа). Я получил сообщение: «Предупреждения: есть некоторые данные после окончания данных полезной нагрузки — Физический размер: 474 450 715 — Размер хвоста 191», см. рис.

Я также переименовал файл в «.RAR» и снова открыл его с помощью 7Zip и получил точно такой же результат. Я не могу добавить больше информации, НО выдержка из надежного zip-файла Macrium эффективна на 100%, и нет никакого отрицательного результата из-за дополнительной полезной нагрузки.

При извлечении архива я получаю сообщение "Есть некоторые данные после окончания данных полезной нагрузки". Я думаю, что это влияет на файлы внутри архива.

Если вы хотите сослаться на этот комментарий где-то еще в этом проекте, скопируйте и вставьте следующую ссылку:

В некоторых случаях это сообщение можно игнорировать, но оно также может означать, что 7-Zip не смог определить тип архива. Какой тип (и расширение) архива вы открываете? Видите ли вы файлы, которые вы ожидаете после извлечения? Попробуйте открыть архив в режиме парсера - вы увидите "некоторые данные" и сможете их проанализировать.

Если вы хотите сослаться на этот комментарий где-то еще в этом проекте, скопируйте и вставьте следующую ссылку:

Может быть, серьезность этого сообщения можно изменить с ошибки на предупреждение? Я получаю это при тестировании загруженных файлов sme, и 7zip выводит результат ошибки, хотя файлы извлекаются очень хорошо.

Если вы хотите сослаться на этот комментарий где-то еще в этом проекте, скопируйте и вставьте следующую ссылку:

Я думаю, что это "запись восстановления", которую Winrar помещает в свои файлы. Насколько я помню, это уже обсуждалось здесь.

Если вы хотите сослаться на этот комментарий где-то еще в этом проекте, скопируйте и вставьте следующую ссылку:

Это не запись восстановления winrar. В большинстве случаев это какой-то код, добавляемый в конец файла архива внешними средствами:
+ Цифровая подпись с сертификатом (обычно для инсталляторов в exe или msi файлах).
+ HTML-код при загрузке файлов с неправильно настроенного веб-сервера (иногда это HTML-оболочка, добавленная намеренно, чтобы предотвратить использование менеджеров загрузки).
+ Добавлено заполнение при попытке восстановить файлы или восстановить содержимое сломанного жесткого диска (см. предыдущее сообщение от Shell).
+ и т.д.
Что бы это ни было, это означает "Вы не можете изменить содержимое архива". Если файл подписан, вы можете проверить его валидность, в противном случае стоит подумать о создании нового архива.

И Fr0sT.Brutal прав - должно быть предупреждение и должен быть переключатель, чтобы игнорировать это предупреждение и распаковывать файлы молча.

Если вы хотите сослаться на этот комментарий где-то еще в этом проекте, скопируйте и вставьте следующую ссылку:

Как восстановить поврежденный архив 7z

Возможно, новая версия 7-Zip решит ваши проблемы с архивами 7z. Поэтому загрузите последнюю версию 7-Zip и попробуйте использовать эту новую версию. Вы также можете попробовать последнюю альфа- или бета-версию. Если новая версия также не помогает, прочтите это руководство.

<УЛ>
  • 7-Zip (последняя версия, которая может быть стабильной, альфа- или бета-версией).
  • Какая-нибудь программа с шестнадцатеричным просмотрщиком или редактором, например, FAR Manager.
  • Структура архива 7z

    <ПР>
  • Начальный заголовок (32 байта): содержит подпись и ссылку на конечный заголовок.
  • Сжатые данные файлов
  • Блок сжатых метаданных для файлов: он содержит ссылки на сжатые данные, информацию о методах сжатия, CRC, именах файлов, размерах, метках времени и т. д.
  • Конечный заголовок: содержит ссылку на блок сжатых метаданных.
  • Пример архива

    Пример архива: a.7z (3740 байт), содержащий 5 файлов, сжатых методом LZMA.

    Начало архива:

    Типы коррупции

    <УЛ>
  • Вы можете открыть архив и увидеть список файлов, но когда вы нажимаете команду «Извлечь» или «Проверить», возникают некоторые ошибки: ошибка данных или ошибка CRC.
  • При открытии архива появляется сообщение "Не удается открыть файл 'a.7z' как архив"
  • Случай повреждения: ошибки данных или ошибки CRC для файлов внутри архива

    Здесь мы описываем случай, когда вы можете открыть архив и видите список файлов, но при нажатии команды Извлечь или Проверить возникают ошибки: Ошибка данных или Ошибка CRC.

    В этом случае восстановить данные довольно сложно.

    Если архив был сжат в режиме "Solid" и у вас есть точные копии некоторых файлов из архива, вы можете создать аналогичный архив с хорошими копиями файлов с теми же настройками и в том же порядке, и заменить "плохие" части плохих .7z с "хорошими" деталями от другого хорошего .7z. Вы должны просмотреть списки файлов в плохих и хороших архивах, логи команды "тест" и подумать о том, как заменить плохие части.

    Здесь больше нет инструкций по делу о коррупции.

    Случай повреждения: не удается открыть файл "a.7z" как архив

    Если вы пытаетесь открыть или извлечь архив и видите сообщение "Не удается открыть файл 'a.7z' как архив", это означает, что 7-Zip не может открыть какой-либо заголовок с начала или с конца архив.

    В этом случае вы должны открыть архив в шестнадцатеричном редакторе и посмотреть Start Header и End Header.

      Случай: Если начало архива повреждено, то нет ссылки на End Header. Но если с конечным заголовком все в порядке, и размер архива тоже правильный, вы можете заменить данные в начальном заголовке в шестнадцатеричном редакторе на следующие значения:

    Тогда попробуйте открыть архив, если вы можете открыть и видите список файлов, попробуйте команду Test или Extract. См. также раздел "Ошибки данных или ошибки CRC" на этой странице.

    Например, если у вас многотомный архив: a.7z.001, . , а.7з.009, но отсутствует одна часть a.7z.008, просто скопируйте a.7z.007 в файл a.7z.008, и 7-Zip увидит правильный размер архива. Или, если какая-то часть была уменьшена, посмотрите размер других частей и восстановите исходный (правильный) размер «плохой» части, чтобы общий размер снова был правильным, и 7-zip смог открыть заголовки.

    В конце архива нет правильного конечного заголовка

    7-Zip записывает полный начальный заголовок только в конце операции создания архива.

    Вы можете посмотреть начальный заголовок. Если вы видите подпись с версией и нулями в других полях:

    тогда операция создания архива, вероятно, по какой-то причине была прервана. И в этом случае, возможно, в конце архива нет блока метаданных и конечного заголовка.

    Примечание: если архив многотомный, то также возможен незавершенный начальный заголовок, если первый том был скопирован до того, как был записан конец архива (последний том). В этом случае архив не поврежден. И 7-Zip может распаковать такой архив, если общий размер правильный и если есть правильный End Header.

    Если с начальным заголовком все в порядке, вы можете рассчитать правильный размер архива и сравнить его с размером вашего архива.

    Если нет конечного заголовка, вы не сможете восстановить имена файлов, временные метки и другие метаданные, но, вероятно, возможно восстановить некоторые данные в виде необработанного файла, а затем можно восстановить данные из необработанного файла с помощью некоторого синтаксического анализатора.< /p>

    Мы опишем все шаги на примере:

    <ПР>
  • Создайте хороший архив 7z
  • Поврежденный архив
  • Восстановить файлы из поврежденного архива
  • Создайте хороший архив

    Мы создаем хороший архив. В качестве примера мы используем файл readme.txt (1565 байт) из архива 7-Zip 9.20.

    Создайте архивы readme.txt.bz2, readme.zip, readme.txt.gzip и readme.txt.xz из readme.txt.

    Создайте файл .7z с помощью метода LZMA, содержащий все файлы:

    У нас есть a.7z (3740 байт). Вы можете посмотреть этот файл в шестнадцатеричном редакторе. Он должен иметь структуру, аналогичную описанной выше структуре файла 7z.

    Поврежденный архив

    <УЛ>
  • a.7z.001: начальный заголовок, некоторая часть сжатых данных
  • a.7z.002: некоторая часть сжатых данных, метаданных, конечного заголовка
  • Блок метаданных с конечным заголовком невелик для нашего тестового архива (менее 300 байт).

    Вызываем команду "Разделить файл" в файловом менеджере 7-Zip и вводим "3000 100G" в поле "Разделить на тома, байты:" (100G означает, что вторая часть не может быть больше 100 ГБ).

    У нас есть две части: a.7z.001 (3000 байт) и a.7z.002 (740 байт). Затем копируем a.7z.001 в bad.7z и пробуем открыть bad.7z. И получаем сообщение "Не удается открыть файл 'bad.7z' как архив", значит, у нас поврежден архив.

    Восстановить архив

    Открываем bad.7z в шестнадцатеричном редакторе

    Мы видим, что начальный заголовок в порядке.

    Мы рассчитываем правильный размер архива из значений полей начального заголовка:

    0x0E59 + 0x20 + 0x23 = 0x0E9C = 3740

    Правильный размер — 3740 байт, но наш «bad.7z» — всего 3000 байт.

    Смотрим в конец архива:

    И мы не видим End Header в конце архива.

    Вывод: вероятно, архив был усечен.

    Теперь мы хотим создать еще один "хороший" 7z-архив, содержащий хороший начальный и конечный заголовок. и мы хотим поместить блок сжатых данных из bad.7z внутрь этого нового "хорошего" архива.

    Сначала смотрим начало блока Compressed Data в bad.7z:

    Если использовался метод LZMA, то первый байт в сжатых данных всегда равен 0, а старший бит второго байта также равен 0. Поэтому, если мы видим 00 в первом байте и от 00 до 7F во втором байте, вероятно, использовался метод LZMA. (не LZMA2).

    Если первый байт в сжатых данных не равен 0 или если значение второго байта выше 7F, то это не поток LZMA. Это может быть LZMA2 (или зашифрованный поток AES).

    Мы должны создать новый "хороший" архив 7z тем же способом, что и в bad.7z, и новый архив должен быть намного больше, чем bad.7z

    raw.7z (84898 байт) намного больше, чем bad.7z, как и требовалось. если файл raw.7z меньше, чем "bad.7z", необходимо создать еще один файл raw.7z с другим файлом raw.dat большего размера.

    Вызываем функцию "Разделить файл. " для bad.7z и вводим "32 100G" в поле "Разделить на тома, байты:".

    Он создает 2 части:

    <УЛ>
  • bad.7z.001: 32 байта: начальный заголовок
  • bad.7z.002: 2968 байт: начало сжатых данных
  • Вызываем функцию «Разделить файл.» для raw.7z и в поле «Разделить на тома, байты:» вводим «32 2968 100G». Обратите внимание, что значение 2968 равно размеру "bad.7z.002". При восстановлении настоящего архива необходимо использовать точный размер файла bad.7z.002.

    Он создает 3 части:

    <УЛ>
  • raw.7z.001: 32 байта: начальный заголовок
  • raw.7z.002: 2968 байт: начало сжатых данных
  • raw.7z.003: 81898 байт: конец сжатых данных, блок метаданных, конец заголовка
  • Затем мы переименовываем файл bad.7z.002 в raw.7z.002

    Теперь многотомный архив "raw.7z.*" содержит хорошие заголовки из raw.7z и сжатые данные из "bad.7z"

    Нажимаем "Извлечь" для файла raw.7z.001. Он извлечет файл raw.dat и, возможно, покажет сообщение «Ошибка данных».

    Теперь у нас есть файл raw.dat, содержащий восстановленный поток из bad.7z.

    Большинство архивов 7z надежны. Если архив bad.7z был сплошным, то восстановленный поток состоит из конкатенированных исходных файлов

    Если архив bad.7z не является цельным, то восстановленный поток содержит данные для одного файла. Он также может содержать мусорные данные в конце.

    Анализ необработанного потока для восстановления цельного архива

    Нет, мы должны использовать какое-нибудь программное обеспечение для синтаксического анализа, которое будет просматривать raw.dat, искать сигнатуры файлов и извлекать некоторые файлы из этого файла.

    Можно попробовать использовать парсер из 7-Zip.

    Вам необходим 7-Zip версии 19.00 или более поздней.

    Нажмите команду «Извлечь», чтобы извлечь эти файлы.

    Итак, мы восстановили некоторые исходные файлы, но без исходных имен.

    Синтаксический анализатор 7-Zip может находить архивы в необработанном файле. Но он не распознает другие файлы, такие как файлы xml, html, jpg, png и так далее. Так что, вероятно, вам нужно какое-то другое программное обеспечение для синтаксического анализатора для извлечения файлов из необработанного файла.

    Восстановление нетвердых архивов и архивов с несколькими сплошными блоками

    Если в архиве 7z более одного сплошного блока, необходимо определить точный конец сплошного блока и начало следующего сплошного блока.

    Читайте также: