|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Фев 3, 2004 23:41:27 У меня вопрос. В COM я ни бум-бум, придется разбираться :((( Меня интересуют только хаки. Вот, положим, открыл я файл в OLE-COM Viewer. Вижу следующее:
interface ISetupCABFile : IDispatch {
[id(00000000), propget, helpstring("Collection of top level components in the media")]
HRESULT Components([out, retval] ISetupComponents** pVal);
[id(0x00000001), propget, helpstring("Main object in the CAB")]
HRESULT MainObject([out, retval] ISetupDriver** pVal);
[id(0x00000002), propget]
HRESULT SetupTypes([out, retval] ISetupTypes** pVal);
[id(0x00000003), propput]
HRESULT IncludedPatforms(
[in] long Mask,
[in] VARIANT_BOOL rhs);
[id(0x00000004), propput]
HRESULT IncludedLanguages(
[in] long Lang,
[in] VARIANT_BOOL rhs);
[id(0x00000005), propget]
HRESULT MaintenanceMode([out, retval] VARIANT_BOOL* pbVal);
[id(0x00000006), propget]
HRESULT guid(
[in] long Index,
[out] BSTR* pVal);
[id(0x00000007), propget]
HRESULT File([out, retval] BSTR* pVal);
[id(0x00000008), propget]
HRESULT ErrorInfo([out, retval] ISetupTransferErrorInfo** ppVal);
[id(0x00000009), propput]
HRESULT Password([in] BSTR rhs);
[id(0x00000014)]
HRESULT InitializeLog([in] ISetupFeatureLog* pLog);
[id(0x00000015)]
HRESULT CreateRegistrySet(
[in] BSTR Name,
[in] ISetupFeatureLog* pLog);
[id(0x00000016)]
HRESULT CreateShellObjects([in] ISetupFeatureLog* pLog);
};
Так вот, вопросы: 1) Как утилита выдрала сие из exe-файла? 2) Как соотнести то, что я вижу с реальными строками кода? 3) На этот вопрос я и сам найду ответ, но вдруг кто-то может дать совет - есть ли хорошие технические статьи по хаку COM. Как сия ерунда устроена на низком уровне? Все, спасибо. Жду ответов. |
|
|
Дата: Фев 3, 2004 23:43:18 Да, под ХОРОШЕЙ статьей по хаку COM я понимаю что-то подобное http://www.microsoft.com/msj/0399/comtype/comtype.aspx, а не жевание соплей в течение часа. |
|
|
Дата: Фев 3, 2004 23:56:22 Уже понял, откуда извлекаются TypeLib - из ресурсов, где они торчат как бинарники. Остается открытым вопрос №2 и №3. |
|
|
Дата: Фев 4, 2004 00:04:30 · Поправил: Безпощадный даос |
|
|
Дата: Фев 4, 2004 01:18:05 Как соотнести эти методы с адресами в файле? |
|
|
Дата: Фев 4, 2004 01:35:33 Нужно найти виртуальную таблицу. Если разассемблить файл ее легко распознать. В зависимости от интерфейса разные таблицы. Ф-ция Components должна быть восьмая в таблице. |
|
|
Дата: Фев 4, 2004 01:39:07 По подобию vftbl для C++? А есть методики для поиска? |
|
|
Дата: Фев 6, 2004 05:36:50 Правка Рискну вставить пару слов… По подобию vftbl для C++? Да, СОМ-интерфейсы создаются по модели объектов C++ и содержат свою таблицу виртуальных методов, которая так и называется. А есть методики для поиска? Есть специальные функции для просмотра таблицы методов и интерфейсов (может, неправильно выразился), подробнее не могу сказать, т.к. читал о СОМ пару недель назад в одной книге. Довольно хорошая книга, по ней можно даже писать без проблем на ?ASM'е интерфейсы СОМ. Если нужно, могу выслать… ? |
|
|
Дата: Фев 7, 2004 19:11:34 Нужно. Шли :) |
|
|
Дата: Фев 7, 2004 20:49:06 IceStudent Забей. Уже все понял и почти во всем разобрался. Спасибо. |
|
|
Дата: Фев 7, 2004 21:42:07 IceStudent Ну вот :( Начинаю я искать: "Довольно хорошая книга.." А мне сразу вопрос: "а кто же автор" ;-) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 2.402 |