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

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

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

Post by Ariman » Mon 31 Aug, 2009 11:29

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

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

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

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

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


Сторонние модули:
Dir — поддержка вывода команд dir и ls в качестве виртуального архива. (на версии 1.10 работать не будет в связи с изменением API модулей)
Inno Setup - поддержка файлов Inno Setup (сделан на основе innounp).

TheDrive
Posts: 8
Joined: Thu 04 Dec, 2014 00:19
Has thanked: 1 time
Been thanked: 1 time

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

Post by TheDrive » Fri 08 Apr, 2016 05:31

Latest post of the previous page:

Спасибо за плагин! Работает, и даже UDF ISO открывает, с которым не справляется штатный ArcLite.
Ariman wrote:Надо же хоть как-то просигнализировать об ошибке.
Относительно ошибок...
Стоило также добавить сообщение об ошибке если не установлен MSVC Runtime, причем плагин давно уже требует не MSVC2008, а MSVC2010.
И стоило указать четкие системные требования в шапке темы. Я потратил прилично времени чтобы понять почему не работает и не ругается.
Без рантаймов диалог конфигурации работает, однако при попытке зайти в любой архив любым способом - ничего не происходит, никаких ошибок не выдает. Об этом уже писали выше. Мелкая сноска в шапке относительно каких-то "файликов для улучшения портабельности", прямо скажем в глаза не бросается и "системным требованием" никак не является. :) Файлы по ссылке тоже давно "протухли".
А, меж тем, Far, как раз, является "весьма портабельным", "сервисным" приложением. Люди нередко запускают его на "новых компах", из под WinPE и в прочих "некошерных" местах, где MSVC Runtime и .Net никак не являются "стоящими по дефолту". :) XP вообще не содержит .Net "из коробки". Неплохо было бы, если не избавиться от .Net-а (переписать на "машинном языке"), то хотя бы предусмотреть вышеуказанную "диагностику" и возможность отключения vdisk.so, коль скоро, с ним весь плагин не работает "при определенных условиях".

Для тех, кто не увидел ссылку "про портабельность" в шапке, повторю:
Для работы плагина необходимо установить Microsoft Visual C Runtime 2010 SP1 (возможно также MSVC Runtime 2005 SP1) 32 или 64 бит, в зависимости от битности плагина и, соотв битности Far-а.
Вместо этого можно скопировать необходимые библиотеки из MSVCRT2010SP1 (msvcr100.dll и msvcp100.dll) в папку Modules в папке плагина (возможно также библиотеки из MSVCRT2005SP1 в папку %windir%\Microsoft.NET\Framework\v2.0.50727 )
Скопировать файлы рекомендуется даже если рантаймы установлены. Иначе, когда будете копировать свою "рабочую" папку с Far-ом на какой-нибудь LiveCD, обязательно забудете об этом.

И просьба не обижаться! Вполне здравое и дельное замечение. Плагин сам хороший, повторюсь. За работу благодарю и знаю сколько трудов стоит все это писать и отлаживать!

Необходимые файлы из MSVCRT2010SP1 прилагаю в аттач, чтобы более не протухали.
MSVC2010SP1x86.rar
(405.3 KiB) Downloaded 43 times
MSVC2010SP1x64.rar
(442.68 KiB) Downloaded 44 times
Last edited by HaRT on Fri 08 Apr, 2016 12:25, edited 2 times in total.
Reason: Исправлена цитата

Ariman
Posts: 1137
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 8 times
Been thanked: 23 times
Contact:

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

Post by Ariman » Fri 08 Apr, 2016 07:18

TheDrive wrote:И стоило указать четкие системные требования в шапке темы.
Четкие системные требования указаны в топике анонса плагина и в файле readme в самом плагине.
А вот ссылку на портабельность надо, конечно, убрать. Там уже неактуальная информация.

User avatar
gora
Posts: 19
Joined: Wed 23 Sep, 2015 09:26
Has thanked: 5 times

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

Post by gora » Sun 10 Apr, 2016 10:58

Ariman
Просмотрел все спойлеры в шапке, но не нашел пункта об извлечении NSIS инсталляторов. Ни о создания нового модуля, ни о ремонте имеющегося.
Озвучьте, пожалуйста, планы по этому вопросу.

Ariman
Posts: 1137
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 8 times
Been thanked: 23 times
Contact:

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

Post by Ariman » Mon 11 Apr, 2016 13:25

gora wrote:Озвучьте, пожалуйста, планы по этому вопросу.
Планы довести его до ума. Насчет чинить старый или писать новый, я пока экспериментирую.

TheDrive
Posts: 8
Joined: Thu 04 Dec, 2014 00:19
Has thanked: 1 time
Been thanked: 1 time

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

Post by TheDrive » Tue 12 Apr, 2016 23:17

Ariman wrote:Четкие системные требования указаны в топике анонса плагина и в файле readme в самом плагине.
А вот ссылку на портабельность надо, конечно, убрать. Там уже неактуальная информация.
Да, я в курсе, что они там есть, но в "глаза не бросаются", находятся где-то в середине.

Я сам всех призываю всегда читать доки, я ОЧЕНЬ много читаю, и не только док, но и статей и книг на самые разные технические и гуманитарные темы, но все не же прочтешь, жизни не хватит...
Цель чтения - достичь понимания интересующего материала (ну или понять необходимый материал), впоследствии надеясь использовать знание для достижения полезных нам целей. Мир существует объективно вне нашего сознания и не может быть объективно хорошим или плохим. Хорошим или плохим он может быть исключительно в наших оценках полезности, бесполезности или вредности чего либо нашим целям и интересам. Именно поэтому невозможно найти объективный "смысл жизни", ибо в самом понятии смысла заложена наша заинтересованность (или не заинтересованность) в чем либо и смысл оторванный от человека существовать не может.

Я читал доку мельком ДО запуска плагина (прежде всего на предмет вводной инфы и особенностей установки, есть годами выработанный рефлекс, я много лет даже проги не ставлю с помощью сетапа, а сначала все распаковываю и ищу наличие подвохов, в т.ч. с помощью беглого визуального осмотра кода и анализа в Hiew) и нифига не увидел там требования о рантаймах (акцент тут на Я и НЕ УВИДЕЛ). Позже, когда плагин не заработал, НЕ ВЫДАВАЯ никаких сообщений об ошибках, я подумал, что это ГЛЮК, и глюк в силу какой то несовместимости У МЕНЯ, т.е. с "моим компом", между Far определенной версии (4545) и плагином (1.11.1, хотя оба свежие), 32-64бит и т.д., который приводит к слету неких процедур внутри плагина и он, "типа", молча падает. Чего я не предполагал, так того, что в плагине отсутствует процедура диагностики каких-то типовых ошибок (в т.ч. "защита от дурака").
Потом я снова курил доку более подробно и снова не увидел сноску о требовании рантайма. (опять же, Я и НЕ УВИДЕЛ, т.е. я "виноват", не ВЫ!, тут все очевидно). Пришлось отложить разбирательство из-за спешки. Потом полез на форум выискивая "жалобы" и наткнулся на ссылку с рантаймами. Потом нашел требования, которых ранее "в упор не увидел".



Нас так учили и сумели донести, что программист пишет программу "один раз", а пользоваться ей будут, может быть тысячи или даже миллионы людей, и, может быть годами, и все они будут терять силы и время если я НЕ напишу свой код максимально оптимально. Убытки нужно умножать и превращать в человекочасы. Если я (1 человек) потрачу 50 часов на оптимизацию кода, а потом 1000 человек сэкономит каждый день по 1 минуте, то это будет 17 человекочасов в день или 6083 человекочасов в год. Разница, думаю, очевидна. Если для удовлетворения прихоти 3 юзеров потерявших по 2 часа в силу своей "грамотности" нужно переписывать код 100 часов, то разница тоже, думаю очевидна. Кто будет тратить время и силы не столь важно. Мы все "плывем в одной лодке" и "связаны одной цепью", друг другу нужны и жить друг без друга не можем. :) Вот на это и нужно ориентироваться. Если "тупым" пользователям требуется СПЕЦИФИЧНОЕ обучение по 10 часов чтобы начать пользоваться программой, может легче (экономичнее) переписать программу (если это возможно), чтобы она соответствовала их ожиданиям и общепринятым методам взаимодействия. Но если это приведет к снижению продуктивности пользователей в дальнейшем, то надо "нагибать" ИХ и заставлять переучиваться. Это правильно и разумно.

На эту идеологию я опирался, когда писал предыдущее замечание. Я ничего не "требовал", не "возмущался", я прекрасно понимаю, что в своих проблемах "виноват" только я сам. :) Но я также понимал, что еще куча "тупых юзеров" теряют кучу времени только потому, что плагин не сообщает им об отсутствии рантайма, некоторые, возможно, тихо ругаются, называя Ariman-а %плохой_человек%. Я же с ними не согласен. Ariman прекрасный человек, потративший тысячи человекочасов своего личного времени на написание прекрасных профессиональных программ для всех нас, которые нас радуют и помогают жить и побеждать, экономят миллионы наших человекочасов! И речь не только об этом плагине, но и о других программах. Немногие, наверное, обратили внимание, что именно Ariman поддерживает в актуальном состоянии Inno Setup Unpacker с 2009г, после того, как его забросил автор (QuickeneR). Пользуясь случаем хочу выразить Вам большую благодарность, в т.ч. за добавление кастомных версий Inno, о поддержке которых я просил года 3 назад. Все работает. Думаю, это сэкономило очень не мало человекочасов людям во всем мире.

Возможно, сделать проверку на наличие библиотек дело 5 минут (я, конечно, не знаю точно).
Вот тут этот вопрос обсуждали:
http://www.sql.ru/forum/1054830/kak-uzn ... -libraryes
У Вас сам плагин не требует рантайма. Его требуют только модули. У Вас нет проблем описанных в топике, когда прога не стартует без библиотек и, соотв., не может ни вызвать LoadLibrary и LoadResource, ни вывести информативное сообщение об ошибке.

Я тут давеча обнаружил, что еще в 2011-2012гг стартовал параллельный проект распаковщика для Inno Setup - InnoExtract
http://constexpr.org/innoextract/
Код мультиплатформенный, написан на Си. Возможно, Вам его легче будет импортировать будет в Observer, нежели Паскалевский код Inno Unpacker-а, тем более, что Вы (или кто-то еще), вроде, жаловались на запутанность кода QuickeneR-а. О реалиях работы с этой тулзой пока ничего не знаю. Толком не испытывал.

Есть и еще один вопрос, который меня мучает много лет. InstallExplorer, написанный еще в 2004г, по сей день работает с большинством поддерживаемых типов инсталляторов. С 2004г утекло очень много времени. Поменялись очень многие форматы данных, зачастую десятки раз, но, на удивление, старый плагин умудряется распаковывать большинство даже современных пакетов. Не всегда он делает это корректно, да и раньше такое было, еще на момент выхода. Было, что зависал, было что и файлы битые оказывались, было что в архиве он видел один анинсталлятор нулевого или бредового размера, бывает, что видит несколько файлов с одним именем, плагин в принципе "не знает" о наличии у файлов таких свойств, как дата и время изменения, но все равно показательно, что ОН РАБОТАЕТ!. Мало того, на моей памяти он с легкостью потрошил кастомные инстялляторы, на которых затыкались InnoUnpack и 7Zip, хотя кастомизации создавались спустя много лет после выхода плагина.

Понятно, что от архиватора (пусть даже специфического) требуется прежде всего надежность и этим InstallExplorer похвастаться не может, но когда нужно распаковать архив любой ценой, чтобы хотя бы проверить на наличие вредоносных компонентов или вытащить то, что само никак не инсталлируется (по разным причинам), то будешь рад любому анпакеру, когда другие не справляются. Бывает, что сгодился бы даже просто распакованный поток без деления на файлы. Когда сильно нужно, файлы можно найти в потоке и выдрать вручную.
Я уж думал может его зареверсить и выдрать какие-то эффективные алгоритмы, поскольку автор не пожелал выложить исходники столь ценного плагина и сам куда-то пропал много лет назад... Задача представляется очень трудоемкой несмотря на крохотный, по нынешним временам, размер, всего 42КБ. Но одно дело найти и поправить пару байт за 5 мин, другое реверсить все алогритмы из асма.
Last edited by TheDrive on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятан офтопик

User avatar
HaRT
Moderator
Posts: 7980
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

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

Post by HaRT » Wed 13 Apr, 2016 01:53

TheDrive, рекорд засчитан.
А сказать-то что хотели? Только очень сжато и по пунктам с нумерацией.
Фар есть инструмент, а не нянька. © 2009 DrKnS

2useven10
Posts: 2953
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 77 times

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

Post by 2useven10 » Wed 13 Apr, 2016 04:51

TheDrive
Дамп работы мозга юзера лучше выкладывать отдельным файлом в упакованном виде, шифровать и прятать под спойлер.

TheDrive
Posts: 8
Joined: Thu 04 Dec, 2014 00:19
Has thanked: 1 time
Been thanked: 1 time

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

Post by TheDrive » Wed 13 Apr, 2016 22:39

Last edited by TheDrive on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятан офтопик

User avatar
HaRT
Moderator
Posts: 7980
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

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

Post by HaRT » Thu 14 Apr, 2016 00:57

TheDrive, предупреждение за офтопик.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
HaRT
Moderator
Posts: 7980
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

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

Post by HaRT » Thu 14 Apr, 2016 23:17

Ariman
Сейчас, если пытаться распаковать файл в директорию, куда может писать только приподнятый процесс (притом даже в „само-приподнятом“ Фаре), выдаётся .
Пожелание: чтобы в тексте фигурировала причина, почему не получается: что не так с самим контейнером, какая проблема в пути назначения.
Фар есть инструмент, а не нянька. © 2009 DrKnS

refaim
Posts: 10
Joined: Wed 18 Aug, 2010 01:22
Has thanked: 1 time

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

Post by refaim » Fri 15 Apr, 2016 05:02

Ariman
Реквестирую поддержку BSA (архивы-контейнеры в 3-5 частях игр серии The Elder Scrolls и в Fallout, начиная с третьей части).
Есть опенсорсная библиотека на плюсах: https://github.com/WrinklyNinja/libbsa.

Ariman
Posts: 1137
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 8 times
Been thanked: 23 times
Contact:

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

Post by Ariman » Fri 15 Apr, 2016 10:10

HaRT wrote: Пожелание: чтобы в тексте фигурировала причина, почему не получается
Это в общем случае проблематично. В модулях используется куча стороннего кода, который никаких подробностей не сообщает.
В текущей реализации разделение идет на ошибки чтения и записи, но в диалоге это не отображается (и то не во всех модулях). Расширю диалог. Но с более подробной информацией это пока сложно.
refaim wrote: Реквестирую поддержку BSA
Добавлю в список запросов.

dilukhin
Posts: 10
Joined: Thu 21 Oct, 2010 09:47
Location: Питер

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

Post by dilukhin » Thu 07 Jul, 2016 15:51

Прошу помощи сообщества. Заранее извиняюсь, возможно где-то я ступил.
Мне нужно прочитать аттачи в письме eml, потому что клиент брыкается и не хочет отдавать txt
У меня есть два архива с топичным плагином
Observer_Far2_x64_1112.rar, взятый из Far plugring
Observer_Far3_x86_1.11.1.rar, взятый из SourceForge
Я их по очереди пытаюсь распаковывать в папку "C:\Program Files\Far Manager\Plugins\Observer" (там же мой Far стоит) и перезапускать Far. Ничего не меняется. Плагин в списке по F11 не появляется, при попытке открыть eml (по Enter) тот открывается в том самом клиенте. ЧЯДНТ? Помогите, пожалуйста!
У меня Far Manager, version 3.0 (build 4455) x64, открытый через ConEmu, Windows 7 x64 prof SP1

Shmuel
Posts: 5041
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 133 times

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

Post by Shmuel » Thu 07 Jul, 2016 15:56

dilukhin wrote: Observer_Far2_x64_1112.rar
Плагины для Far2 не работают в Far3.
dilukhin wrote: Observer_Far3_x86_1.11.1.rar
Плагины для x86 не работают в Far x64.

pepak
Posts: 312
Joined: Sun 13 Jul, 2008 11:18
Has thanked: 1 time
Been thanked: 9 times

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

Post by pepak » Sun 17 Jul, 2016 11:08

InnoSetup module updated to InnoUnp v0.46.

User avatar
HaRT
Moderator
Posts: 7980
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

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

Post by HaRT » Tue 09 Aug, 2016 16:20

VDISK роняет Фар при попытке извлечения из некоторых DMG (у меня есть несколько однотипных):
0. Скачать, например это (там требуется бесплатная регистрация, но за контору ручаюсь; могу выложить файл — 16 МиБ — куда-нибудь).
1. Открыть Фар без прочих плагинов и макросов.
2. Зайти в скачанный файл и попытаться скопировать на другую панель файл “.journal”.
Получаем (иногда перед этим тормозит на 12% до полуминуты); нажимаю Ignore — вижу (“F:\.journal” — это файл, в который копирую), закрываю его — получаю почти то же в — и уже после того, как система поискала решение онлайн, я нажимаю “Close program”, и только тогда окно Фара пропадает. Файл F:\.journal получается длиной 65536 байт вместо 524288, которые были показаны как размер файла в архиве.

Win 8.1 Ent x64; Far Manager v3.0 build 4750 x86 (2016-08-05) (но на тех же файлах падало и несколько месяцев назад); Observer 1.11.2.
Я готов предоставить дополнительные подробности или провести диагностику/отладку.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Ariman
Posts: 1137
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 8 times
Been thanked: 23 times
Contact:

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

Post by Ariman » Tue 09 Aug, 2016 20:23

HaRT wrote:Скачать, например это (там требуется бесплатная регистрация,
Скачалось по ссылке безо всяких регистраций.
HaRT wrote:VDISK роняет Фар при попытке извлечения из некоторых DMG
Повторил. Тут двойная проблема.
Падение я исправил. У меня неправильно обрабатывалась ошибка распаковки, и была попытка удалить незакрытый файл. А так как это .NET, то кидалось необработанное исключение. Теперь всё нормально обрабатывает и показывает нормальный диалог ошибки.
Но проблема, непосредственно, извлечения файла никуда не делась. Это уже ошибка внутри либы DiscUtils. И насчет её исправления шансов не много, я в DMG формате не разбираюсь, а либу автор забросил (недавно даже предлагал отдать желающим в хорошие руки).

Post Reply

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

Who is online

Users browsing this forum: No registered users and 10 guests