Сейчас на форуме: (+5 невидимых)

 eXeL@B —› Вопросы новичков —› проблема с ActiveX Dll
Посл.ответ Сообщение


Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 26 июля 2010 13:48 · Поправил: SecurAdmin
· Личное сообщение · #1

Вобщем ковыряю одно приложение, которое для проверки лицензионной информации обращается к ActiveX dll. причем как он это делает для меня загадка. Т.е. как я понимаю он грузит этот модуль, выполняет в нем одну единственную функцию и выгружает.
Все мыслимые и немыслимые способы брякнуться в момент загрузки этого модуля не увенчались успехом.
Есть у кого-нибудь мысли по поводу того, как попасть в тело этого модуля (На чём собственно брякаться)?
Или может кто подскажет как вообще отлаживать ActiveX dll?
Скажу к слову, что однажды (сам не знаю, что я делал и как туда попал) но мне все же удалось увидеть загруженный в память модуль (.dll) в списке ExecutablesModules в Оле, но повторить этот подвиг не получилось.......

HELP

-----
бессмысленные манипуляции не становятся более разумными если их повторять




Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 26 июля 2010 14:23
· Личное сообщение · #2

LoadLibraryA/W
или
В ольке Alt+O->Events->braak on new module (dll)




Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 26 июля 2010 14:38
· Личное сообщение · #3

Как бы это не показалось странным, но этот долбанный ActiveX загружатся каким-то более другим способом...
Все что посоветовал Вован, я попробовал, НУ НЕТ ЕГО....хотя я точно знаю, что он есть, и более того проверка на валидность лицензии тоже проходит....

-----
бессмысленные манипуляции не становятся более разумными если их повторять




Ранг: 75.0 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 26 июля 2010 14:47
· Личное сообщение · #4

SecurAdmin
посмотреть у нее в экспорте DllRegisterServer - не то ???




Ранг: 164.6 (ветеран), 65thx
Активность: 0.120
Статус: Участник
Волшебник

Создано: 26 июля 2010 14:52
· Личное сообщение · #5

CoInitalize/CoInitializeEx/CoCreateInstance/CoCreateInstanceEx

-----
Следуй за белым кроликом





Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 26 июля 2010 14:56
· Личное сообщение · #6

В экспорте, как и у любого нормального ActiveX модуля:
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnRegisterServer

CoInitalize/CoInitializeEx/CoCreateInstance/CoCreateInstanceEx - пробовал, результат нулевой....
Для большей убедительности попробую еще разок

по результатам отпишусь

-----
бессмысленные манипуляции не становятся более разумными если их повторять





Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 26 июля 2010 15:15
· Личное сообщение · #7

Попробовал еще раз CoInitalize/CoInitializeEx/CoCreateInstance/CoCreateInstanceEx

Лучше не стало.....
Ну не могу я попасть на загрузку этой ботвы в память..........

-----
бессмысленные манипуляции не становятся более разумными если их повторять




Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 26 июля 2010 15:29 · Поправил: Vovan666
· Личное сообщение · #8

А если ActiveX dll в точке входа пропатчить на EBFE, дождаться пока загрузится, нажать паузу, и восстановить оригинальные байты?




Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 26 июля 2010 15:51
· Личное сообщение · #9

Vovan666
Идея отличная, но хрен прокатило...

-----
бессмысленные манипуляции не становятся более разумными если их повторять





Ранг: 164.6 (ветеран), 65thx
Активность: 0.120
Статус: Участник
Волшебник

Создано: 26 июля 2010 16:05 · Поправил: neomant
· Личное сообщение · #10

SecurAdmin
Здаётся мне что здесь не иначе как какое-то волшебство.
Можно пациента в студию?

-----
Следуй за белым кроликом





Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 27 июля 2010 06:47
· Личное сообщение · #11

neomant
Я бы с радостью, но "чудище обло, огромно и лаяй"
Вес инсталлера больше 600 метров

-----
бессмысленные манипуляции не становятся более разумными если их повторять





Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 27 июля 2010 08:15
· Личное сообщение · #12

Вобщем в процессе исследования пришел к очень интересным выводам:
1) Я отчетливо вижу по Alt+O->Events->braak on new module (dll) как грузятся в память все ActiveX модули кроме того, который нужен мне.
2) Поставив бряк на CreateFileW я вижу как выполняются функи из MSVCRT fopen, fread и fclose в качестве параметров к которым фигурирует тот самый модуль.

Исходя из этого напрашивается только один вывод:
Сам ActiveX считывается в память, дальше каким-то образом управление передается на его точку входа, и начинается его выполнение.
одскажите, кто знаком с такой технологией загрузки библиотек, как брякнуться на их выполнении.

Пошаговая Трассировка с начала выполнения fopen заводит в бесконечные дебри MSVCRT и прочих библиотек...может есть более простой способ?

-----
бессмысленные манипуляции не становятся более разумными если их повторять





Ранг: 164.6 (ветеран), 65thx
Активность: 0.120
Статус: Участник
Волшебник

Создано: 27 июля 2010 09:01
· Личное сообщение · #13

Ну, 600 метров - не размер, можно и закачать, была бы ссылка. То что вы описываете действительно похоже на собственный загрузчик, тогда никаким Эктив Икс и КОМ здесь не пахнет, обманка. Нужно разбирать загрузчик и смотреть где он передаёт управление на загруженый код. Из дебрь MSVCRT помогает выбраться Ктрл+Ф9.

-----
Следуй за белым кроликом





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 27 июля 2010 09:18
· Личное сообщение · #14

SecurAdmin пишет:
Поставив бряк на CreateFileW я вижу как выполняются функи из MSVCRT fopen, fread и fclose в качестве параметров к которым фигурирует тот самый модуль.

Значит перед этим идёт выдиление памяти через VirtualAlloc размер обычно равен Size of Image твоей ActiveX.
SecurAdmin пишет:
одскажите, кто знаком с такой технологией загрузки библиотек, как брякнуться на их выполнении

A OEP ActiveX для чего нужен?

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 27 июля 2010 09:24
· Личное сообщение · #15

ClockMan пишет:
A OEP ActiveX для чего нужен?


Да понятно, что гдето должен быть переход на ОЕП, но как до него добраться? может поподробнее мысль изложишь, а то я уже вообще с трудом отдупляю чё дальше делать


neomant пишет:
тогда никаким Эктив Икс и КОМ здесь не пахнет, обманка


в том-то и дело, что если это обманка, то уж больно грамотно сделанная.

-----
бессмысленные манипуляции не становятся более разумными если их повторять





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 27 июля 2010 09:51
· Личное сообщение · #16

Vovan666 пишет:
А если ActiveX dll в точке входа пропатчить на EBFE

Vovan666 пишет:
Идея отличная, но хрен прокатило...

ClockMan пишет:
A OEP ActiveX для чего нужен?

Значит пытайся ловить через VirtualAlloc походу прога сама перебивает релоки и активирует импорт(GetProcAddress), в таком случае управление на оер может вообще непереходить.

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 27 июля 2010 11:57 · Поправил: zeppe1in
· Личное сообщение · #17

SecurAdmin пишет:
кто знаком с такой технологией загрузки библиотек

www.slesh.name/?act=articles&subact=show&nid=12
SecurAdmin пишет:
но мне все же удалось увидеть загруженный в память модуль (.dll) в списке ExecutablesModules

при такой сырой загрузке ты бы его не увидел. я так понимаю в любом случае должен быть Loadlibrary.
может LoadlibraryEx?A? W? и всё равно не понятно почему джамп на оеп не сработал. может проверка какая и не грузит длл.

-----
zzz





Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 27 июля 2010 11:59
· Личное сообщение · #18

НЕТ, VirtualAlloc тоже не участвует в этом безобразии
Идет CreateFileW затем блоками по 400h выполняется ReadFile и memcpy_s
каждый раз переписывая ранее прочитанный блок...
Вобщем я заблудился окончатльно... Чёж они курили то там такое, чтобы так наворотить???

-----
бессмысленные манипуляции не становятся более разумными если их повторять





Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 28 июля 2010 08:41 · Поправил: SecurAdmin
· Личное сообщение · #19

Всё, разобрался, оказывается этот ActiveX действительно подгружатся не совсем обычно, но чудес не бывает, не грузился он из-за того, что системная дата старше чем дата зашитая в одном из модулей проги. Прога тупо не грузила длл, если дата старше допустимого порога, вот и всё =) А я мозг сижу выношу себе и окружающим.
Всем спасибо.

-----
бессмысленные манипуляции не становятся более разумными если их повторять



 eXeL@B —› Вопросы новичков —› проблема с ActiveX Dll
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати