Сейчас на форуме: (+5 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› проблема с ActiveX Dll |
Посл.ответ | Сообщение |
|
Создано: 26 июля 2010 13:48 · Поправил: SecurAdmin · Личное сообщение · #1 Вобщем ковыряю одно приложение, которое для проверки лицензионной информации обращается к ActiveX dll. причем как он это делает для меня загадка. Т.е. как я понимаю он грузит этот модуль, выполняет в нем одну единственную функцию и выгружает. Все мыслимые и немыслимые способы брякнуться в момент загрузки этого модуля не увенчались успехом. Есть у кого-нибудь мысли по поводу того, как попасть в тело этого модуля (На чём собственно брякаться)? Или может кто подскажет как вообще отлаживать ActiveX dll? Скажу к слову, что однажды (сам не знаю, что я делал и как туда попал) но мне все же удалось увидеть загруженный в память модуль (.dll) в списке ExecutablesModules в Оле, но повторить этот подвиг не получилось....... HELP ----- бессмысленные манипуляции не становятся более разумными если их повторять ![]() |
|
Создано: 26 июля 2010 14:23 · Личное сообщение · #2 |
|
Создано: 26 июля 2010 14:38 · Личное сообщение · #3 Как бы это не показалось странным, но этот долбанный ActiveX загружатся каким-то более другим способом... Все что посоветовал Вован, я попробовал, НУ НЕТ ЕГО....хотя я точно знаю, что он есть, и более того проверка на валидность лицензии тоже проходит.... ----- бессмысленные манипуляции не становятся более разумными если их повторять ![]() |
|
Создано: 26 июля 2010 14:47 · Личное сообщение · #4 |
|
Создано: 26 июля 2010 14:52 · Личное сообщение · #5 |
|
Создано: 26 июля 2010 14:56 · Личное сообщение · #6 В экспорте, как и у любого нормального ActiveX модуля: DllCanUnloadNow DllGetClassObject DllRegisterServer DllUnRegisterServer CoInitalize/CoInitializeEx/CoCreateInstance/CoCreateInstanceEx - пробовал, результат нулевой.... Для большей убедительности попробую еще разок по результатам отпишусь ----- бессмысленные манипуляции не становятся более разумными если их повторять ![]() |
|
Создано: 26 июля 2010 15:15 · Личное сообщение · #7 |
|
Создано: 26 июля 2010 15:29 · Поправил: Vovan666 · Личное сообщение · #8 |
|
Создано: 26 июля 2010 15:51 · Личное сообщение · #9 |
|
Создано: 26 июля 2010 16:05 · Поправил: neomant · Личное сообщение · #10 |
|
Создано: 27 июля 2010 06:47 · Личное сообщение · #11 |
|
Создано: 27 июля 2010 08:15 · Личное сообщение · #12 Вобщем в процессе исследования пришел к очень интересным выводам: 1) Я отчетливо вижу по Alt+O->Events->braak on new module (dll) как грузятся в память все ActiveX модули кроме того, который нужен мне. 2) Поставив бряк на CreateFileW я вижу как выполняются функи из MSVCRT fopen, fread и fclose в качестве параметров к которым фигурирует тот самый модуль. Исходя из этого напрашивается только один вывод: Сам ActiveX считывается в память, дальше каким-то образом управление передается на его точку входа, и начинается его выполнение. одскажите, кто знаком с такой технологией загрузки библиотек, как брякнуться на их выполнении. Пошаговая Трассировка с начала выполнения fopen заводит в бесконечные дебри MSVCRT и прочих библиотек...может есть более простой способ? ----- бессмысленные манипуляции не становятся более разумными если их повторять ![]() |
|
Создано: 27 июля 2010 09:01 · Личное сообщение · #13 Ну, 600 метров - не размер, можно и закачать, была бы ссылка. То что вы описываете действительно похоже на собственный загрузчик, тогда никаким Эктив Икс и КОМ здесь не пахнет, обманка. Нужно разбирать загрузчик и смотреть где он передаёт управление на загруженый код. Из дебрь MSVCRT помогает выбраться Ктрл+Ф9. ----- Следуй за белым кроликом ![]() |
|
Создано: 27 июля 2010 09:18 · Личное сообщение · #14 SecurAdmin пишет: Поставив бряк на CreateFileW я вижу как выполняются функи из MSVCRT fopen, fread и fclose в качестве параметров к которым фигурирует тот самый модуль. Значит перед этим идёт выдиление памяти через VirtualAlloc размер обычно равен Size of Image твоей ActiveX. SecurAdmin пишет: одскажите, кто знаком с такой технологией загрузки библиотек, как брякнуться на их выполнении A OEP ActiveX для чего нужен? ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]() |
|
Создано: 27 июля 2010 09:24 · Личное сообщение · #15 ClockMan пишет: A OEP ActiveX для чего нужен? Да понятно, что гдето должен быть переход на ОЕП, но как до него добраться? может поподробнее мысль изложишь, а то я уже вообще с трудом отдупляю чё дальше делать neomant пишет: тогда никаким Эктив Икс и КОМ здесь не пахнет, обманка в том-то и дело, что если это обманка, то уж больно грамотно сделанная. ----- бессмысленные манипуляции не становятся более разумными если их повторять ![]() |
|
Создано: 27 июля 2010 09:51 · Личное сообщение · #16 Vovan666 пишет: А если ActiveX dll в точке входа пропатчить на EBFE Vovan666 пишет: Идея отличная, но хрен прокатило... ClockMan пишет: A OEP ActiveX для чего нужен? Значит пытайся ловить через VirtualAlloc походу прога сама перебивает релоки и активирует импорт(GetProcAddress), в таком случае управление на оер может вообще непереходить. ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]() |
|
Создано: 27 июля 2010 11:57 · Поправил: zeppe1in · Личное сообщение · #17 SecurAdmin пишет: кто знаком с такой технологией загрузки библиотек www.slesh.name/?act=articles&subact=show&nid=12 SecurAdmin пишет: но мне все же удалось увидеть загруженный в память модуль (.dll) в списке ExecutablesModules при такой сырой загрузке ты бы его не увидел. я так понимаю в любом случае должен быть Loadlibrary. может LoadlibraryEx?A? W? и всё равно не понятно почему джамп на оеп не сработал. может проверка какая и не грузит длл. ----- zzz ![]() |
|
Создано: 27 июля 2010 11:59 · Личное сообщение · #18 НЕТ, VirtualAlloc тоже не участвует в этом безобразии Идет CreateFileW затем блоками по 400h выполняется ReadFile и memcpy_s каждый раз переписывая ранее прочитанный блок... Вобщем я заблудился окончатльно... Чёж они курили то там такое, чтобы так наворотить??? ----- бессмысленные манипуляции не становятся более разумными если их повторять ![]() |
|
Создано: 28 июля 2010 08:41 · Поправил: SecurAdmin · Личное сообщение · #19 Всё, разобрался, оказывается этот ActiveX действительно подгружатся не совсем обычно, но чудес не бывает, не грузился он из-за того, что системная дата старше чем дата зашитая в одном из модулей проги. Прога тупо не грузила длл, если дата старше допустимого порога, вот и всё =) А я мозг сижу выношу себе и окружающим. Всем спасибо. ----- бессмысленные манипуляции не становятся более разумными если их повторять ![]() |
![]() |
eXeL@B —› Вопросы новичков —› проблема с ActiveX Dll |