Страница 1 из 2

Открытие "неправильных" архивов

Добавлено: Сб фев 27, 2016 13:13
mozers
Имеется "неправильный" архив: первые 66 байт содержимого файла - бинарный мусор - затем, собственно, начинается сам архив. (Так устроены файлы, подписанные по алгоритму PKCS #7).
Тотал, при проверке такого архива выдает стандартное "Архив поврежден или имеет неизвестный формат".
Всегда полагал что это - неизбежность, однако вруг узнал что FAR в такие архивы входит без проблем. Открывает такие архивы и встроенный браузер архиватора WinRAR (7Zip - тоже).
В общем, стало "за державу обидно". Неужели Тоталу, с тучей встроенных средств, и внешних плагинов это не под силу?

Добавлено: Сб фев 27, 2016 13:47
Skif_off
mozers
А пример? "бинарный мусор" - это base64, так понимаю? Размер всегда 66 байт?
В голову приходит MultiArc, но это скорее костыль и только для некоторых частных случаев.
ИМХО, имеет смысл создать тему на оффоруме (реквест или баг).

Добавлено: Сб фев 27, 2016 17:08
mozers
"бинарный мусор" - это бинарные данные (base64 таковыми не являются).
66 байт - в большинстве случаев. Утверждать что "всегда" не буду.
Пример - ниже. То, что это - реальный архив можно убедится дав файлу расширение zip.
Задача минимум - заставить Тотал заходить в этот архив независимо от его расширения.
ИМХО на оффорум постить стоит только после того как местные спецы подтвердят что данный недостаток невозможно поправить руками.

Код: Выделить всё

MIME-Version: 1.0
Content-Type: application/octet-stream; name="archive"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="archive"

MIIJjwYJKoZIhvcNAQcCoIIJgDCCCXwCAQExDzANBgkrBgEEAZxWAQEFADCCCBwGCSqGSIb3DQEH
AaCCCA0EgggJUEsDBBQAAgAIAEF1l0a2YERMTgMAAPgGAAAKAAAAUmVnSnVtcC5qc5VU227bRhB9
NgH+w1gIQMqRqdweCrluIbBqnFq2AlGOk2ZTYUWNyG2oXWK5jKIkfuuHBPmUfkq/pLOkbnZcG+UL
yeGcOWfPDKd94DpDTERh9BJ+K+e567xCXQglO/A0eOQ63dKkSndgrj5R/J+/vsGPqTF5p91OzTw7
5HmeiZgbAhTBRJhJGb9HEyid/OQ6h//zcp1BjhI4SFyAkIXhMkZQMzApwkZlbyqM0qBkFS5yjMVM
4BTe4zJwnRHF6AliLmGCVCUvDRhV58Za5IZiYBYKFnxZdFzn76/wOIBRqlWZpFVarOZzLqeQCYnA
dVLOUZoq8cmNxEzkE8X1FPw1rSgs2cQWya0oIemVw6SczVBTfKY0gi6lFDLZ0dR0HduHWCVSfEIg
Pi2wWB+dyyUQcE5qAU5Oe2/G/UHY7Y/PuuHJi/Mei95Eo94ZC0utCRkqQqssQsNWjxb29uS0f3Zv
5ruagTLXqbfkbssetK3uD1zDZZFGKWYZHFfN68ZGfMDXg8mfGBu/cRlVpwyqlEbzaI1SXZ0UBFl/
767MLo7q79bR4zoryFAmJoWf61f/URM64HlVKTEDf59ym/DZdfbsjNj7Xo32b9FjR3cmMmw0m0HO
7fEuhZyqRbDp6C/c8CBBY+++N8KPxrOy965osEyc+khcV65ztabfsNekdhY15hmP0W//URvabnm3
9I7VdW+HhRdbWHgxHPbOR+OLqDe8BzXcQfW7UdSLxsPBYHQ3qqKCGmU5ontIwu+lhYPzX188vwPH
6GonLe+u0qw4YG+pstfcwb2j6IMqeLRjutVB9G0RGCxM1YMbI7Aey4C2xxD51ObAQ9gI2G3ntfyX
Ki9zv3GKSyYbhKhxDSalMoAfaRPtN1rwtAWNa9uTYs9+qCtbkXt2iPu8MKfVQb26o5GamQVNHWNn
ItaqoFfG6gEsNv/bagsz1qUNi4Y+EBHS6mPMFiQ9dva3J7VMtLho29GeOYbvDr5SsWsqCx4+sC33
mvDlC3jhCl3VvebcpRYGYV2iteWpnaztoULD3vNx9PtNZz9f2Z4BZgVWUm96vDHQemztneKMNu90
n8nIcG3s5rc738Z5mZkgCMjmJ/9pfeX8Vn4pfU/X1sHh3GvBY5v0L1BLAQIUABQAAgAIAEF1l0a2
YERMTgMAAPgGAAAKAAAAAAAAAAEAIAAAAAAAAABSZWdKdW1wLmpzUEsFBgAAAAABAAEAOAAAAHYD
AAAAAG8wMDAwMDCAocOcNZ+jxNkzi0Tc3S/ZeyVDwsAt3Ys20rgsIwIReB7IoAg0vHMkF4SMdqct
fkA2+fH/T0QN3EMRoJ9GQfgDMjA2NTk0MTA0MDAxubnNVp2Wj2FyagE8BwAAMYIBRDCCAUACAQEw
cDBcMQswCQYDVQQGEwJSVTELMAkGA1UECBMCNDAxDzANBgNVBAcTBlJBQklTMjENMAsGA1UEChME
Q0JSRjENMAsGA1UECxMEQ1VLQzERMA8GA1UEAxMIQURNSU5fQ0ECEEA2ELcI5TL2aO8a5lZDAe8w
DQYJKwYBBAGcVgEBBQCgaTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEP
Fw0xNjAyMjUwNTMzMDhaMC8GCSqGSIb3DQEJBDEiBCAEU22hCoeYISo5vJUzR0EFHzYOFbMazmTo
f98dR6Gy2DANBgkrBgEEAZxWAQIFAARAT8p5sVgiBTUu0l6abwlmb3BCM9h1sTLVp29hOKjfNQqu
RRIFGtYV352Ve1wbmVB52KlXRuMrlYWg29NVSQr7ww==

Добавлено: Сб фев 27, 2016 17:19
Flasher
mozers
Эко тебя спустя 9 лет обратно к нам забросило. :o
Проверил архив, никаких ошибок, вход по Ctrl+PgDn без расширения происходит без проблем. TC 8.52 x32 + Total7zip.wcx.

Добавлено: Сб фев 27, 2016 18:19
mozers
Flasher, спасибо ОГРОМНОЕ за отличную подсказку!
и БРАВО - автору плагина Total7zip.
До сей поры постоянно юзал 7zip.wcx (Copyright © 2004-2007 Adam Strzelecki; © 2009 Dmitry Efimenko; © 2009 Alexandr Popov; © 2010 Cristian Adam ; © 2011 dllee), а тут он подкачал...

Добавлено: Сб фев 27, 2016 18:29
Flasher
mozers
На здоровье. :wink: Не стоит забывать только 7z.dll и 7zG периодически обновлять. Пути к ним
total7zip.xml писал(а):<path path_7z_dll="<тут пишем>" path_7zG_exe="и тут" />
.

Добавлено: Сб фев 27, 2016 19:07
Skif_off
Проверил голые свежераспакованные дистрибы х86 и х64 (в конфиге только UseIniInProgramDir=7) - молча открывается без каких-либо проблем и плагинов.
Ошибку получаю, только если повесить *.zip на 7zip.wcx, что было бы странным решением.

Добавлено: Сб фев 27, 2016 19:33
Flasher
Skif_off
УБрал Total7zip, архив перестал открываться и стал выдавать ошибку (безотносительно статуса опции "Работать с повреждёнными ZIP"). 7zip.wcx не установлен.

Добавлено: Сб фев 27, 2016 19:35
mozers
Skif_off
Не поленился, скачал 64-bit+32-bit combined download, распаковал вручную, ini по-умолчанию у меня сроду не было. Не фига голый Тотал (ни 32 ни 64) не может мой архив открыть. А в ответ на тест - "Error in archive file!". Только если дать расширение. Полагаю что у Вас получилось только потому что Тоталу помог какой то внешний архиватор сурьезно интегрированный в ОС.

Добавлено: Сб фев 27, 2016 19:43
Skif_off
mozers
Если это реальный архив, то зачем убирать расширение? Или отсутствие расширения - вполне реальная ситуация?

Добавлено: Сб фев 27, 2016 19:48
Flasher
Skif_off
Помимо отсутствия расширения есть варианты и с другими расширениями, а их не так мало. Некоторый список можно увидеть в total7zip.xml.

Добавлено: Сб фев 27, 2016 20:12
Skif_off
Flasher
archive.docx, archive.txt - вхожу по Ctrl+PgDn, судя по свойству упакованного файла отрабатывает архиватор 7zip_7z, что забавно, в конфиге:

Код: Выделить всё

7zip_7z=735,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
...
7zip_zip=735,%COMMANDER_PATH%\Plugins\wcx\Total7zip\Total7zip.wcx
(добавлялись для упаковки с помощью 7-zip), голый ТС с этими файлами не справился.

В общем, получается, что если есть расширение, которое ТС поддерживает из коробки - откроет без сторонних средств. Иначе читает сигнатуру файла (типа как файлы MS Office 2007++ и прочие *.oex и *.oxt) и открывает без сторонних средств. Если 66 байт - постоянный размер, спецификация PKCS #7, то по идее можно читать ту же сигнатуру по известному смещению, поэтому и высказал мысль об оффоруме.

А FAR из коробки имеет плаг ArcLite на основе 7-Zip. 7-Zip, похоже, вообще пытается открыть что угодно :)

Добавлено: Сб фев 27, 2016 20:26
Flasher
Skif_off писал(а):Иначе читает сигнатуру файла (типа как файлы MS Office 2007++ и прочие *.oex и *.oxt) и открывает без сторонних средств.
Нет, не открывает и не читает. Это как раз делает Total7zip.

Добавлено: Сб фев 27, 2016 20:42
Skif_off
Flasher писал(а):Нет, не открывает и не читает.
ТС из коробки читает *.zip и массу форматов, которые по сути есть zip-архив: те же документы MS Office 2007++ прекрасно открывает, ибо, так понимаю, видит сигнатуру zip.
Если зарепортить и если 66 байт - спецификация PKCS #7, то, возможно, ТС сможет дополнительно искать сигнатуру по ещё одному смещению. Тогда и подобные подписанные файлы ТС будет открывать из коробки. Вот я о чём.

P.S. Взял первые 66 байт из примера и приклеил в начале 7z-архива - 7zip.wcx тоже справился, так же сработало с *.sqx и *.zpaq (с плагами).

Добавлено: Сб фев 27, 2016 20:44
Flasher
Мы сейчас разбираем конкретный файл. Подставь не zip и попробуй открыть.