Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.113 c
6-1149542592
CShooter
2006-06-06 01:23
2006.10.29
NMpop31.GetMailMessage(NMpop31.MailCount) выдает ERangeError


2-1160544824
gvozdkoff
2006-10-11 09:33
2006.10.29
Ключевре поле DB Paradox


9-1137663613
Control
2006-01-19 12:40
2006.10.29
ShareWare игры


15-1160137481
oldman
2006-10-06 16:24
2006.10.29
Завтра Россия-Израиль. Ваши ставки?


15-1160049524
kroner
2006-10-05 15:58
2006.10.29
HTML-редактор





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский