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.
Pasha_ZZZ
Posts: 433
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

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

Post by Pasha_ZZZ »

Latest post of the previous page:

Может все дело в префиксе __imp_?
Pasha_ZZZ
Posts: 433
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

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

Post by Pasha_ZZZ »

Да, убрал __imp_, остатки названия функи забил нулями - прошло дальше. Теперь в zlib. Как бы еще сделать, чтобы VS сразу делало 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 »

А ты чем собираешь вообще? Раньше делфя не понимала obj-и от студии.
Pasha_ZZZ
Posts: 433
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

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

Post by Pasha_ZZZ »

Начиная с XE2 вроде общий формат - COFF. У меня VS 2017 и Berlin
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

Прогресс не стоит на месте, оказывается. Я с более-менее новыми версиями делфи не общался никогда.
Насчет _imp, вот тут интересная мысль есть.
You are getting the __imp prefix because you declared the functions __declspec(dllimport). Just remove that.
Pasha_ZZZ
Posts: 433
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

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

Post by Pasha_ZZZ »

Я это читал. Нигде в изначальном проекте такого декларирования не нашел. Такой текст есть только в Browse.VC.db. Менял параметры разные, типа вместо таргета DLL ставил статичную LIB. Не помогло.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

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

Post by Ariman »

А, ну да. Чето я затупил. Функция же в системных хедерах объявлена, там декларирование не уберешь.
Надо было сразу сорцы скачать и посмотреть. Закоментируй функцию _DllMainCRTStartup и пересобери файл отдельно, без проекта.
Pasha_ZZZ
Posts: 433
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: 433
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: 433
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: 433
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: 10854
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: 433
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
Post Reply

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