Observer — распаковка файлов из различных контейнеров

Здесь можно обсудить ваш любимый плагин.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Ariman »

Тема для обсуждения плагина Observer.
Плагин предназначен только для распаковки файлов. Запаковка/редактирование архивов не планируется.

Хотелки/баги:

Известные проблемы:

Планируемые новые модули:

Если "ничего не работает", то прежде чем писать сюда:


Сторонние модули:
  • Dir — поддержка вывода команд dir и ls в качестве виртуального архива.
  • Inno Setup — поддержка файлов Inno Setup (сделан на основе innounp).
  • cab — распаковка нестандартных .cab архивов (Windows Update и др.)
Last edited by Ariman on Wed 04 May, 2022 14:36, edited 7 times in total.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Observer — распаковка файлов из различных контейнеров

Post by HaRT »

Latest post of the previous page:

picfar wrote: Видите, в конце маленькую букву о? - это какой-то символ не из алфавита. Его значение в hex = 6F
6F — это самая что ни на есть строчная латинская “o”, но вот у Вас в проблемных письмах вовсе не она, а символ LF (никсовый перевод строки). То, что в данном коде ему соответствует буква «o», похожая на символ, отображаемый в Фаре, — просто забавное совпадение. Ну и надо добавить, что приличные отправители перевод строки в заголовок письма не вставляют.
Фар есть инструмент, а не нянька. © 2009 DrKnS
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Observer — распаковка файлов из различных контейнеров

Post by 2useven10 »

picfar, Попробуйте eDecoder, как форматный sub-plugin для arclite.
*.dll надо переименовать в *.format и положить в Plugins/arclite/Formats/ нужной битности.
Заходить в файлы можно по Ctrl-PgDn или через F1->arclite->...

add: в TC он тоже должен работать
add-add: Ну и в 7z[FM] естестественно...
picfar
Posts: 4
Joined: Fri 03 Mar, 2017 20:19
Has thanked: 2 times

Observer — распаковка файлов из различных контейнеров

Post by picfar »

HaRT - вы правы, я чего-то не проверил. Просто на вид мне она показалась непохожей на "о".
Но я не вижу там hex-кода перевода строки.
На быстрый взгляд, отличия только в одном. Вместо = стоит буква о Qo=?=

Т.е:
Q==?= - работает 51 3D 3D 3F 3D 0D 0A
Qo=?= - нет 51 6F 3D 3F 3D 0D 0A

в hex, в обоих случаях, в конце есть 0D 0A . Это вроде и есть перевод строки.

Может где-то еще собака зарыта? Завтра еще посмотрю.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Observer — распаковка файлов из различных контейнеров

Post by HaRT »

picfar wrote: в обоих случаях, в конце есть 0D 0A
Я вижу, что Вы вообще плохо представляете, что такое кодирование и декодирование. Вам ещё рано разбираться с такими вещами, как Base64 и MIME. Что там на самом деле происходит, я написал выше.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Ariman »

2 picfar

HaRT, в принципе, хорошо расписал откуда уши растут и без меня. А для исправления хорошо бы примерчик такого файла для отладки получить.
picfar
Posts: 4
Joined: Fri 03 Mar, 2017 20:19
Has thanked: 2 times

Observer — распаковка файлов из различных контейнеров

Post by picfar »

2useven10 wrote: Попробуйте eDecoder
Спасибо, попробую =)
HaRT wrote: что такое кодирование и декодирование
А, кажется понял. Вы имеете в виду то, что при кодировании перевода строки и получается эта буква "о"? Ведь в base64 используются только символы из ASCII таблицы. Там и не могло быть никакого символа извне. А я ковыряю текст в base64, а нужно смотреть на декодированный вариант.
Ariman wrote: А для исправления хорошо бы примерчик такого файла для отладки получить.
Кусок tbb-файла подойдет? Я вырезал кусок с начала tbb-файла с несколькими письмами. Всего 3 письма:
1) Открывается
2) Проблемный с переводом строки
3) Открывается
Attachments
MESSAGES_cut.zip
(2.18 KiB) Downloaded 48 times
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Observer — распаковка файлов из различных контейнеров

Post by 2useven10 »

picfar,
eDecoder открывает все 3, но заголовки он не показывает.
Если .TBB открыть через eDecoder, то вложенные сообщения Observer тоже все открывает.
picfar
Posts: 4
Joined: Fri 03 Mar, 2017 20:19
Has thanked: 2 times

Observer — распаковка файлов из различных контейнеров

Post by picfar »

2useven10 wrote: eDecoder открывает все 3, но заголовки он не показывает.
Исправить можно и вручную. Я просто взял и в hex-редакторе изменил Qo=?= на Q==?= и всё открылось. Можно попробовать сделать полную автозамену (сделав бэкап, конечно). Но вдруг еще какая-нибудь бяка вылезет в будущем - лучше чтобы плагин игнорировал переводы строк на Win,Unix и прочие символы в теме письма и еще где нужно.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Ariman »

Спасибо за файлик.
Забавная ошибка. Оказывается винда не разрешает наличие символа 0А в имени файла. Не хочет его создавать с таким именем.
Исправил, теперь такие символы (ну и 0D до кучи) удаляются с тем писем.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Observer — распаковка файлов из различных контейнеров

Post by HaRT »

Ariman wrote: теперь такие символы (ну и 0D до кучи) удаляются с тем писем
Это хорошо сработает только в том случае, когда они с краю. А если вдруг окажется в середине, то слова склеятся. Может, лучше только с краёв выкидывать, а в середине каждую последовательность „плохих“ пробельных символов заменять одним пробелом?

Кстати, напомните, пжлст, а что сейчас делается, скажем, с двоеточиями из Темы письма? (Ну а потенциально и с другими символами, не разрешёнными в именах файлов.)
Фар есть инструмент, а не нянька. © 2009 DrKnS
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Ariman »

HaRT wrote:Может, лучше только с краёв выкидывать, а в середине каждую последовательность „плохих“ пробельных символов заменять одним пробелом?
Согласен, имеет смысл.
HaRT wrote:Кстати, напомните, пжлст, а что сейчас делается, скажем, с двоеточиями из Темы письма? (Ну а потенциально и с другими символами, не разрешёнными в именах файлов.)
Заменяются на символ _.
User avatar
Taciturn
Posts: 600
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Taciturn »

Файлы из MSI дистрибутива PuTTY 0.68 (32 и 64) не распаковываются.

Code: Select all

Ошибка извлечения для файла:
SourceDir\PFiles\PuTTY\putty.exe
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Ariman »

Taciturn wrote:Файлы из MSI дистрибутива PuTTY 0.68 (32 и 64) не распаковываются.
Да, есть такое.
Некоторые инсталяхи, собранные через WIX, имеют какие-то проблемы в структуре. И через стандартное MSI API невозможно достать встроенный cab файл. А без него нужные файлы не извлечь.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Observer — распаковка файлов из различных контейнеров

Post by HaRT »

Ariman wrote: через стандартное MSI API невозможно достать встроенный cab файл
А какой вызов обламывается? И как именно?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Observer — распаковка файлов из различных контейнеров

Post by Ariman »

HaRT wrote:А какой вызов обламывается? И как именно?
В MSI есть псевдо-таблица _Streams. Запрашивая её можно получить содержимое cab-ов. Но для проблемных файлов запрос к ней выдает, что такая таблица не существует.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Observer — распаковка файлов из различных контейнеров

Post by HaRT »

Ariman wrote:В MSI есть псевдо-таблица _Streams. Запрашивая её можно получить содержимое cab-ов. Но для проблемных файлов запрос к ней выдает, что такая таблица не существует.
По ссылке пишут: “This is a temporary table, created only when referenced by a SQL statement” (выделение моё). Непохоже, что её отсутствие может считаться „проблемой в структуре“.
К тому же плагин OLE2Viewer показывает, что в [b][i]putty-0.68-installer.msi[/i][/b] есть поток [b][i]putty.cab[/i][/b].
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

Return to “Обсуждение плагинов”