Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.29;
Скачать: CL | DM;

Вниз

COM   Найти похожие ветки 

 
moccom   (2006-10-07 19:14) [0]

Знаю, что глупость буду спрашивать и знаю что абсолютно ничего не понимаю в COM технологии. Но, хочется услышать ответ на один вопрос: есть некая com библиотека (dll), и есть приложение, которое использует эту com библиотеку; реально ли достать: что, как, какие методы используются приложением для работы с библиоткой? что бы потом использовать данную библиотеку в своем приложении.


 
wicked ©   (2006-10-07 19:17) [1]

короткий и, наверное, неверный ответ - да, если обьект(-ы), живущий в длл, поддерживает интерфейсы type library... тогда можно будет достать все интерфейсы и методы, предоставляемые обьект(-ом/-ами)


 
moccom   (2006-10-07 19:19) [2]

type library увы нет, я забыл это упомянуть.


 
sniknik ©   (2006-10-07 19:30) [3]

делаеш "import type labrary" (это в проектах) этой библиотеки, и получаеш все методы/свойства даже те которые "та" программа и не использует...


 
moccom   (2006-10-07 19:47) [4]


> делаеш "import type labrary"

Я так понял что это будет реаботать только в том случае, как выше сказано "поддерживает интерфейсы type library", в данном случае (> делаеш "import type labrary") я получаю "Ошибка при загрузке библиотеки". Неужели нет никакого "com сниффера", который бы во время взаимодействия приложения и com библиотеки, мог отследить данный процесс.


 
sniknik ©   (2006-10-07 22:53) [5]

> Ошибка при загрузке библиотеки
значит это не COM.

> Неужели нет никакого "com сниффера"
в нем нет необходимости, там все открыто.


 
jack128 ©   (2006-10-08 02:33) [6]

sniknik ©   (07.10.06 22:53) [5]
значит это не COM.


а разве COM ТРЕБУЕТ наличие библиотеки типов?


 
moccom   (2006-10-08 11:34) [7]


> значит это не COM.

А зачем же тогда в экспорте этой библиотеки: DllCanUnloadNow, DllGetClassObject, DllRegisterServer, DllUnregisterServer, - я думал что подобные вещи указывают но com.


 
sniknik ©   (2006-10-08 13:28) [8]

а может просто одноименные?... малоли кто что напрограммирует. и откуда ты про них узнал? исходники есть, это твоя dll? тогда какие затруднеия узнать ее интерфейсы, если они и так твои?

если не твоя, и есть только один dll файл то, проверь выполни regsvr32 "имя файла.dll". будет удачно, значит и импорт должен сработать (впрочем мне всегда достаточно было создание модуля "create unit" там же, без установок/создания компонент, в котором все и можно посмотреть)

если регистрируется но не импортируется... ну выложи ее куданибудь посмотреть. может действительно сделано через задницу (по типу 1С-ных к примеру).


 
moccom   (2006-10-08 14:49) [9]


> а может просто одноименные?... малоли кто что напрограммирует.

Достоверно известно, что это именно com. (библиотека не моя)


>  проверь выполни regsvr32 "имя файла.dll"

Всё ок, успешно регистрируется. Но вытащить tlb (или как это корректно называется) не удается. Просто есть ещё одна библиотека от этого же автора и вот там присутствует tlb, который успешно можно вытащить со всеми вытекающими интерфейсами и методами.

Видимо придется мне читать литературу по com, что бы хоть понимать с чем имею дело.


 
Внук ©   (2006-10-08 14:59) [10]

Попробуй программку oleview на нее натравить...


 
moccom   (2006-10-08 15:11) [11]

OLE View (от MS) пробовал, но т.к. tlb в библиотеке отсутствуют, то и "View TypeLib" в OLE View не удается. И хоть библиотека успешно регистрируется (regsvr32...) в системе, но в дереве классов OLE View напрочь отсутствуют какие-либо отчетливые упоминания.


 
Kolan ©   (2006-10-08 15:13) [12]


> Но вытащить tlb (или как это корректно называется) не удается.

AFAIR в этом случае попользовать её получится только с пом документации от автора.


 
Внук ©   (2006-10-08 15:13) [13]

>>moccom   (08.10.06 15:11) [11]
 Ну, значит COM-объект без ITypeInfo. Это судьба :)


 
moccom   (2006-10-08 15:27) [14]

Ну вообщем весь смыс то вопроса можно переформировать. Есть ли какие либо методики упрощающие реверсинг данного процесса? (окромя жесткого реверсинга с использованием дизассемблера и головной боли) все же com, поэтому и спрашиваю, может реально как-то перехватывать вызовы или ещё что-то? Скажите, такое хотя бы чисто теоретически возможно?


 
moccom   (2006-10-08 15:33) [15]

Просто, есть же уже готовое приложение, которое использует эту библиотеку, вот и интересно реально ли отследить вызовы из приложения в com.



Страницы: 1 вся ветка

Текущий архив: 2006.10.29;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.056 c
1-1158062383
REA
2006-09-12 15:59
2006.10.29
XML разделитель


2-1160537533
pkm
2006-10-11 07:32
2006.10.29
Типизированный файл.


4-1150222081
kliman
2006-06-13 22:08
2006.10.29
Перехват комбинации клавиш


10-1109488243
SMT
2005-02-27 10:10
2006.10.29
Передача данных в Excel независимо от его версии


15-1160328089
ArtemESC
2006-10-08 21:21
2006.10.29
ObjectPascal на 64x