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: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Latest post of the previous page:

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: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 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: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 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
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 движок должен строить таблицу в памяти и выдавать данные с неё по запросу. Если он не может это сделать только в файлах построенных WIX-ом, да и то, возможно, не во всех, то логично предположить что в таких файлах что-то не так.
HaRT wrote:К тому же плагин OLE2Viewer показывает, что в putty-0.68-installer.msi есть поток putty.cab.
Так и есть, cab внутри находиться. Инсталяха то работает нормально, всё устанавливается успешно. Но MSI API не может нормально работать с такими файлами по какой-то причине.
Выход, как мне видится, это открывать msi как Compound File и доставать cab таким способом. Я экспериментирую на эту тему. Костыльно как-то, но зато вроде работает.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Ariman wrote: Костыльно как-то, но зато вроде работает.
Можно было бы так делать, когда MSI API не срабатывает.
Фар есть инструмент, а не нянька. © 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 API не срабатывает.
Естественно. Как основной метод останется извлечение через MSI API, так надежнее.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Ariman wrote:
HaRT wrote:(Не)кстати, как там дела с PDB? (Только не подумайте, будто я подгоняю.)
Пока, к сожалению, туго. Легкий способ (это спереть готовый код :)) не получился, а до толкового исследования вопроса руки не доходят.
Вот на что я наткнулся: https://github.com/Microsoft/microsoft-pdb — это инструментарий для работы с PDB, опубликованный Майкрософтом.
Фар есть инструмент, а не нянька. © 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:от на что я наткнулся: https://github.com/Microsoft/microsoft-pdb — это инструментарий для работы с PDB, опубликованный Майкрософтом.
WILL NOT currently build
Пока не похоже чтобы там было что-то полезное. Хотя может со временем доведут до ума.
Я всё же пытаюсь работать через DIA. Но там выплевывается туча информации, которую непонятно как использовать с толком. Если интересно, посмотрите выхлоп от DIADump (тулза от MS, в комплекте со студией идет).
refaim
Posts: 13
Joined: Wed 18 Aug, 2010 01:22
Location: Владивосток
Has thanked: 6 times

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

Post by refaim »

refaim wrote:Реквестирую поддержку BSA (архивы-контейнеры в 3-5 частях игр серии The Elder Scrolls и в Fallout, начиная с третьей части).
Более современный и мощный распаковщик: https://github.com/jonwd7/bae
refaim
Posts: 13
Joined: Wed 18 Aug, 2010 01:22
Location: Владивосток
Has thanked: 6 times

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

Post by refaim »

Ariman, не рассматривали возможность вытащить что-нибудь полезное из заброшенного Mr.Ripper? Исходники открыты: https://github.com/crom83/cromfarplugs

Список поддерживаемых форматов:
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

refaim wrote:не рассматривали возможность вытащить что-нибудь полезное из заброшенного Mr.Ripper?
Посмотрю, может там что и найдется полезное.
User avatar
cmd.exe
Posts: 378
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 181 times
Been thanked: 10 times
Contact:

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

Post by cmd.exe »

Ariman, возможно добавить в хотелки окно распаковки файлов, более стандартизованное (Похожее на окна ArcLite).
Сейчас оно не очень информативно, выводит только какой файл распаковывается в данный момент.

Code: Select all

╔═════════════════════════ Observer ══════════════════════════╗
║                       Extracting file                       ║
║            File: 4686/23950. Progress:  0% / 27%            ║
║ Example\Long\Input\Path\With\Some\Files.with.some.extantion ║
╚═════════════════════════════════════════════════════════════╝
А у арклайт, есть подробная информация.

Code: Select all

╔═════════════════ {100%} Extracting files... ═════════════════╗
║ X:\Some\Input\Cmpressed\File.with.extantion                  ║
╟──────────────────────────────────────────────────────────────╢
║ X:\Some\Input\Decompressing\File.with.extantion              ║
║   52 MB / 52 MB @ 8.88 MB/s                                  ║
║ ████████████████████████████████████████████████████████████ ║
╟──────────────────────────────────────────────────────────────╢
║ X:\Some\Writing\File.with.extantion                          ║
║ (52 MB - 34 MB) / 52 MB                                      ║
║ ███████████████████████████████████████▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ║
╚══════════════════════════════════════════════════════════════╝
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates
Post Reply

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