COM, перехват IWebbrowser2

Тема в разделе "WASM.WIN32", создана пользователем katrus, 18 апр 2007.

  1. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Допустим, делаю перехват методам объекта Web Browser (тот самый который имплементирует IWebbrowser2). Внутри процесса iexplorer перехватываю CoCreateInstance и ловлю создание объекта Web Browser. Оригинальная идея была подменить созданный объект на мой proxy.

    Непонятка номер 1 - мой proxy не вызывается. Более того, если из перхваченного CoCreateInstance возвращаю NULL вместо созданного объекта - explorer работает как ни в чем не бывало.

    Решил вместо proxy пропатчить vptr объекта Web Browser - но к сожалению эта таблица лежит в области памяти закрытой для записи. Сделал обходной маневр - полностью сделал свою vptr и поменял указатель не нее в объекте. Работает. Если подменяю метод в vptr на свой - он вызывается.

    Непонятка номер 2. Если из другого процесса прицепиться к Web Browser (используя enumeration IShellWindows) и вызвать перехваченный метод - будет вызван оригнальный код.

    Може кто поможет обьяснить что происходит?
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    katrus
    Так поменяй атрибут. VirtualProtect
     
  3. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    alia, нарушение правил?