Сейчас на форуме: Rio, johnniewalker, vsv1, Magister Yoda, Kybyx (+6 невидимых)

 eXeL@B —› Крэки, обсуждения —› Иследование СОМ обекта
Посл.ответ Сообщение

Ранг: 23.5 (новичок), 5thx
Активность: 0.020
Статус: Участник

Создано: 30 октября 2011 17:20
· Личное сообщение · #1

Есть СОМ обект который представляет интерфейс с методами. Написан на С++ в виде длл.

Как проще всего найти адреса входа этих методов для иследования? (как аналог експортируемой функции)

Если СОМ написан на VB, то VB Reformer показывает точки входа интерфейсных методов. Как быть с с++?
Для примера заатачил длл. Как найти точки входа Generate, Generate2, Check, Check2?

Code:
  1. interface IEngine : IDispatch {
  2. [id(0x00000001), helpstring("Generate a serial string")]
  3. HRESULT Generate(
  4. [in] BSTR ident,
  5. [in] long key1,
  6. [in] long key2,
  7. [out, retval] BSTR* serial);
  8. [id(0x00000002), helpstring("Check a serial string")]
  9. HRESULT Check(
  10. [in] BSTR ident,
  11. [in] BSTR serial,
  12. [out, retval] VARIANT_BOOL* result);
  13. [id(0x00000003), helpstring("Generate a serial string, new format")]
  14. HRESULT Generate2(
  15. [in] BSTR ident,
  16. [in] long key1,
  17. [in] long key2,
  18. [out, retval] BSTR* serial);
  19. [id(0x00000004), helpstring("Check a serial string, new format")]
  20. HRESULT Check2(
  21. [in] BSTR ident,
  22. [in] BSTR serial,
  23. [out, retval] VARIANT_BOOL* result);


80aa_30.10.2011_EXELAB.rU.tgz - dc3reg.dll



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 30 октября 2011 22:39
· Личное сообщение · #2

Вариант №1:
Пишем свою прогу которая создает объект класса. Смотрим в отладчике куда смотрят указатели в vtbl у экземпляра класса

Вариант №2:
Для любителей IDA. Находим IID в коде, по xref находим функцию queryinterface, смотрим какую таблицу виртуальных функций оно юзает для данного IID'a.

PROFIT!

-----
Реверсивная инженерия - написание кода идентичного натуральному


| Сообщение посчитали полезным: tino

Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 30 октября 2011 23:35
· Личное сообщение · #3

для поиска IID использую GUID Scanner (by Rafal Cyran)
или плагин к PeID GUID Hunter (by Aleph)

| Сообщение посчитали полезным: tino

Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 31 октября 2011 01:48
· Личное сообщение · #4

sendersu пишет:
для поиска IID использую GUID Scanner

ALT-B тоже рулит Обычно-то IID известен...

-----
Реверсивная инженерия - написание кода идентичного натуральному



 eXeL@B —› Крэки, обсуждения —› Иследование СОМ обекта
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати