Page 119 of 147

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

Posted: Mon 31 Aug, 2009 11:29
by Ariman
Тема для обсуждения плагина Observer.
Плагин предназначен только для распаковки файлов. Запаковка/редактирование архивов не планируется.

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

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

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

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


Сторонние модули:
  • Dir — поддержка вывода команд dir и ls в качестве виртуального архива.
  • Inno Setup — поддержка файлов Inno Setup (сделан на основе innounp).
  • cab — распаковка нестандартных .cab архивов (Windows Update и др.)

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

Posted: Fri 03 Mar, 2017 21:47
by HaRT

Latest post of the previous page:

picfar wrote: Видите, в конце маленькую букву о? - это какой-то символ не из алфавита. Его значение в hex = 6F
6F — это самая что ни на есть строчная латинская “o”, но вот у Вас в проблемных письмах вовсе не она, а символ LF (никсовый перевод строки). То, что в данном коде ему соответствует буква «o», похожая на символ, отображаемый в Фаре, — просто забавное совпадение. Ну и надо добавить, что приличные отправители перевод строки в заголовок письма не вставляют.

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

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

add: в TC он тоже должен работать
add-add: Ну и в 7z[FM] естестественно...

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

Posted: Fri 03 Mar, 2017 22:39
by picfar
HaRT - вы правы, я чего-то не проверил. Просто на вид мне она показалась непохожей на "о".
Но я не вижу там hex-кода перевода строки.
На быстрый взгляд, отличия только в одном. Вместо = стоит буква о Qo=?=

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

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

Может где-то еще собака зарыта? Завтра еще посмотрю.

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

Posted: Fri 03 Mar, 2017 23:35
by HaRT
picfar wrote: в обоих случаях, в конце есть 0D 0A
Я вижу, что Вы вообще плохо представляете, что такое кодирование и декодирование. Вам ещё рано разбираться с такими вещами, как Base64 и MIME. Что там на самом деле происходит, я написал выше.

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

Posted: Sat 04 Mar, 2017 08:05
by Ariman
2 picfar

HaRT, в принципе, хорошо расписал откуда уши растут и без меня. А для исправления хорошо бы примерчик такого файла для отладки получить.

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

Posted: Sat 04 Mar, 2017 09:18
by picfar
2useven10 wrote: Попробуйте eDecoder
Спасибо, попробую =)
HaRT wrote: что такое кодирование и декодирование
А, кажется понял. Вы имеете в виду то, что при кодировании перевода строки и получается эта буква "о"? Ведь в base64 используются только символы из ASCII таблицы. Там и не могло быть никакого символа извне. А я ковыряю текст в base64, а нужно смотреть на декодированный вариант.
Ariman wrote: А для исправления хорошо бы примерчик такого файла для отладки получить.
Кусок tbb-файла подойдет? Я вырезал кусок с начала tbb-файла с несколькими письмами. Всего 3 письма:
1) Открывается
2) Проблемный с переводом строки
3) Открывается

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

Posted: Sat 04 Mar, 2017 12:00
by 2useven10
picfar,
eDecoder открывает все 3, но заголовки он не показывает.
Если .TBB открыть через eDecoder, то вложенные сообщения Observer тоже все открывает.

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

Posted: Sat 04 Mar, 2017 16:05
by picfar
2useven10 wrote: eDecoder открывает все 3, но заголовки он не показывает.
Исправить можно и вручную. Я просто взял и в hex-редакторе изменил Qo=?= на Q==?= и всё открылось. Можно попробовать сделать полную автозамену (сделав бэкап, конечно). Но вдруг еще какая-нибудь бяка вылезет в будущем - лучше чтобы плагин игнорировал переводы строк на Win,Unix и прочие символы в теме письма и еще где нужно.

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

Posted: Mon 06 Mar, 2017 15:03
by Ariman
Спасибо за файлик.
Забавная ошибка. Оказывается винда не разрешает наличие символа 0А в имени файла. Не хочет его создавать с таким именем.
Исправил, теперь такие символы (ну и 0D до кучи) удаляются с тем писем.

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

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

Кстати, напомните, пжлст, а что сейчас делается, скажем, с двоеточиями из Темы письма? (Ну а потенциально и с другими символами, не разрешёнными в именах файлов.)

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

Posted: Mon 06 Mar, 2017 16:46
by Ariman
HaRT wrote:Может, лучше только с краёв выкидывать, а в середине каждую последовательность „плохих“ пробельных символов заменять одним пробелом?
Согласен, имеет смысл.
HaRT wrote:Кстати, напомните, пжлст, а что сейчас делается, скажем, с двоеточиями из Темы письма? (Ну а потенциально и с другими символами, не разрешёнными в именах файлов.)
Заменяются на символ _.

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

Posted: Sun 19 Mar, 2017 06:18
by Taciturn
Файлы из MSI дистрибутива PuTTY 0.68 (32 и 64) не распаковываются.

Code: Select all

Ошибка извлечения для файла:
SourceDir\PFiles\PuTTY\putty.exe

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

Posted: Mon 20 Mar, 2017 08:30
by Ariman
Taciturn wrote:Файлы из MSI дистрибутива PuTTY 0.68 (32 и 64) не распаковываются.
Да, есть такое.
Некоторые инсталяхи, собранные через WIX, имеют какие-то проблемы в структуре. И через стандартное MSI API невозможно достать встроенный cab файл. А без него нужные файлы не извлечь.

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

Posted: Mon 20 Mar, 2017 12:19
by HaRT
Ariman wrote: через стандартное MSI API невозможно достать встроенный cab файл
А какой вызов обламывается? И как именно?

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

Posted: Mon 20 Mar, 2017 12:24
by Ariman
HaRT wrote:А какой вызов обламывается? И как именно?
В MSI есть псевдо-таблица _Streams. Запрашивая её можно получить содержимое cab-ов. Но для проблемных файлов запрос к ней выдает, что такая таблица не существует.

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

Posted: Mon 20 Mar, 2017 12:34
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].