Может совсем баян, но вот на что случайно наткнулся. В аттаче код, нужно екзе и длл в один каталог положить. Никто часом не знает, зачем это нужно? Никаких вызовов кроме инит-анити не происходит, гугл на IHookOleObject(возвращается GetHookInterface, в коде просто void**) не выдает ни одной ссылки))
А никто не отвечает потому что баян, или не интересно?))) можно же типа пролезть вроде каг к (и)эксплореру в ап)) у меня работало на xp\vista =)
Выглядит как заготовка для чего-то, но для чего именно - непонятно. Екзешник просто регистрирует DLL-ку в COM-системе, прописывая зачем то ключ с его гуидом в LC/microsoft/hookoleobject, запускает эксплорер и дерегистрирует длл-ку. дллка - ком сервер пустого объекта, реализующего один пустой интерфейс IHkObject. Нафуя это надо - одному автору видимо известно. Кодом внедрения во что-то и не пахнет пока.
так запустить надо было)) код мой, я знаю, что он делает), там фишка в том, что ole32.dll при наличие соответствующего ивента, создаваемого вначале, вычитывает clsid, записанный в соответствующем ключе, ищет ком-объект с таким clsid и загружает эту длл)) Экзешник запускает иэксплорер, и ны видим из него наш мессаджбокс))
Аааа.... Ну так бы и говорил что вопрос в том что ole32.dll пытается загрузить объект из соответствующего ключа. =) По идее он может быть и пытается что-то с ним делать, но не получая нужный IID просто отлупливается... Так что может и была бы какая ценность в инжекте DLL-ки, но в эксплорере есть другие способы заинжектится в этом виде - обычные хуки, надстройки и т.п. А по поводу поста - почему ты решил что интерфейс называется именно IHookOleObject? Попробуй как нибудь перехватить что в QueryIntreface тебе эксплорер в объект пытается передать как IID и поищи в инете такой GUID.
Не пытается, он получает адреса функций, которые описаны в HkDll.cpp, сохраняет их в глобальных переменных, и экспортирует(!) обертки вокруг них)) никакие функции кроме (Un)InitHookOle не вызываются, по всему system32 искал строчки с названиями -- нигде нет, кроме самой ole32.dll, из нее же тоже ничего кроме (Un)InitHookOle не вызывается)) это все можно посмотреть недалеко от длл-мэйна из символов -- там прототипы функций есть)) Не, я понимаю, что не ахти какая клевая штука, но может кому будет полезно, и вообще странно, что никаких упоминаний нигде об этом нет)
Clerk Просто еще один способ пролезть в ап некоторых процессов, более слабый аналог AppInit_DLLs из user32 для ole32, т.к. нужно иметь установленный ивент.
Velheart Прот запалит это, даже более - любую подгрузку(рассматривайте как проецирование файловых секций) модулей, так что смысла нет.