Page 116 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 08 Apr, 2016 05:31
by TheDrive

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 156 times
MSVC2010SP1x64.rar
(442.68 KiB) Downloaded 150 times

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

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

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

Posted: Sun 10 Apr, 2016 10:58
by gora
Ariman
Просмотрел все спойлеры в шапке, но не нашел пункта об извлечении NSIS инсталляторов. Ни о создания нового модуля, ни о ремонте имеющегося.
Озвучьте, пожалуйста, планы по этому вопросу.

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

Posted: Mon 11 Apr, 2016 13:25
by Ariman
gora wrote:Озвучьте, пожалуйста, планы по этому вопросу.
Планы довести его до ума. Насчет чинить старый или писать новый, я пока экспериментирую.

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

Posted: Tue 12 Apr, 2016 23:17
by TheDrive
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 мин, другое реверсить все алогритмы из асма.

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

Posted: Wed 13 Apr, 2016 01:53
by HaRT
TheDrive, рекорд засчитан.
А сказать-то что хотели? Только очень сжато и по пунктам с нумерацией.

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

Posted: Wed 13 Apr, 2016 04:51
by 2useven10
TheDrive
Дамп работы мозга юзера лучше выкладывать отдельным файлом в упакованном виде, шифровать и прятать под спойлер.

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

Posted: Wed 13 Apr, 2016 22:39
by TheDrive

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

Posted: Thu 14 Apr, 2016 00:57
by HaRT
TheDrive, предупреждение за офтопик.

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

Posted: Thu 14 Apr, 2016 23:17
by HaRT
Ariman
Сейчас, если пытаться распаковать файл в директорию, куда может писать только приподнятый процесс (притом даже в „само-приподнятом“ Фаре), выдаётся .
Пожелание: чтобы в тексте фигурировала причина, почему не получается: что не так с самим контейнером, какая проблема в пути назначения.

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

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

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

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

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

Posted: Thu 07 Jul, 2016 15:51
by dilukhin
Прошу помощи сообщества. Заранее извиняюсь, возможно где-то я ступил.
Мне нужно прочитать аттачи в письме 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

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

Posted: Thu 07 Jul, 2016 15:56
by Shmuel
dilukhin wrote: Observer_Far2_x64_1112.rar
Плагины для Far2 не работают в Far3.
dilukhin wrote: Observer_Far3_x86_1.11.1.rar
Плагины для x86 не работают в Far x64.

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

Posted: Sun 17 Jul, 2016 11:08
by pepak
InnoSetup module updated to InnoUnp v0.46.

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

Posted: Tue 09 Aug, 2016 16:20
by HaRT
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.
Я готов предоставить дополнительные подробности или провести диагностику/отладку.