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.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

Latest post of the previous page:

А, ну да. Чето я затупил. Функция же в системных хедерах объявлена, там декларирование не уберешь.
Надо было сразу сорцы скачать и посмотреть. Закоментируй функцию _DllMainCRTStartup и пересобери файл отдельно, без проекта.
Pasha_ZZZ
Posts: 430
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

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

Post by Pasha_ZZZ »

Ariman wrote: Sun 12 Nov, 2017 16:14 Закоментируй функцию _DllMainCRTStartup и пересобери файл отдельно, без проекта.
Собрал с проектом, просто не всю функу закомментил, а ее содержимое.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

Можно и так, конечно. Но эта функция не нужна. Цель же не dll собрать, а внедрить в Innounp, как я понимаю. Хотя, по идее, delphi не использует те же функции, что и студия, как точки входа, так что мешать не должно.
Pasha_ZZZ
Posts: 430
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

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

Post by Pasha_ZZZ »

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

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

Post by Ariman »

Pasha_ZZZ wrote: Sun 12 Nov, 2017 18:27 а там все функции с префиксом _
Это нормально. MSVC почему-то в x86 ставит префикс _, а в x64 нет.
Pasha_ZZZ
Posts: 430
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

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

Post by Pasha_ZZZ »

Вот я и думаю, как скомпилить так, чтобы префикса не было
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

Pasha_ZZZ wrote: Mon 13 Nov, 2017 10:37 Вот я и думаю, как скомпилить так, чтобы префикса не было
Никак, по идее. Это стандартный name mangling. Странно, что в x64 от префикса избавились.
А что, innounp не собирается с этим obj файлом с префиксами?
Pasha_ZZZ
Posts: 430
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

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

Post by Pasha_ZZZ »

нет конечно, он же функи не находит без подчеркиваний... можно конечно собрать билдером, как и предписывается в текстовике, но лучше бы в VS
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 »

Pasha_ZZZ wrote: Mon 13 Nov, 2017 10:37как скомпилить так, чтобы префикса не было
Pasha_ZZZ wrote: Mon 13 Nov, 2017 11:04лучше бы в VS
В Студии можно для экспортируемых символов задать требуемые имена посредством DEF-файла.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Pasha_ZZZ
Posts: 430
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

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

Post by Pasha_ZZZ »

Ну например ISCrypt.def:

Code: Select all

EXPORTS
	ISCryptGetVersion
	ArcFourInit
	ArcFourCrypt
и конец файла ISCrypt.obj:

Code: Select all

_ISCryptGetVersion@0 _ArcFourInit@12 _ArcFourCrypt@16
2useven10
Posts: 5204
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

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

Post by 2useven10 »

Def-файл влияет на линкер и его выход (.dll, .exe).
Никаких переименований в .obj файле естественно не будет.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

Можно .pas файл подредактировать. Делфи позволяет имена задавать.
2useven10
Posts: 5204
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

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

Post by 2useven10 »

А в C-файле для ф-и вместо умолчательного cdecl указать pascal или stdcall ?
Pasha_ZZZ
Posts: 430
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

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

Post by Pasha_ZZZ »

Так уже __stdcall
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

2useven10 wrote: Tue 14 Nov, 2017 11:22 А в C-файле для ф-и вместо умолчательного cdecl указать pascal или stdcall ?
Не, С-файл трогать не обязательно. Просто в .pas указать имя функции с подчеркиванием. В паскале есть такой функционал, чтобы имя для использования и имя для импорта отличались.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

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

Post by ccaid »

Ariman, обнаружилось, что, в частности, Opera 49 создаёт mhtml-файлы нового образца: с полями заголовка, которые начинаются на X-Snapshot-. если данные в таком поле переносятся на другую строку (т.е. поле занимает несколько строк), то плагин не считает такой файл валидным MIME-файлом. если вручную убрать эти «излишки», то всё сразу колосится.

Фар делают добрые люди
Post Reply

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