Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.02;
Скачать: CL | DM;

Вниз

Отловить момент приаттачивания своей dll к процессу   Найти похожие ветки 

 
Viktor   (2008-02-05 11:28) [0]

Здравствуйте! Подскажите как отловить попытку загрузки моей dll в АП процесса и при определенных условиях запретить Windows это делать?
Заранее благодарен!


 
Сергей М. ©   (2008-02-05 11:40) [1]

Считай что никак.


 
хам   (2008-02-05 11:43) [2]

> Подскажите как отловить попытку загрузки моей dll в АП процесса

Begin
// здесь?
end.


 
Slym ©   (2008-02-05 11:43) [3]

library ApiHook;
{$WARN SYMBOL_PLATFORM OFF}
uses windows;

procedure DllMain(fdwReason:DWORD);
begin
 case fdwReason of
   DLL_PROCESS_DETACH:
   begin
     UninterceptFunctions();
   end;
   DLL_PROCESS_ATTACH:
   begin
     InterceptFunctions();
   end;
   DLL_THREAD_ATTACH: ;
   DLL_THREAD_DETACH: ;
 end;
end;

begin
 DllProc:=@DllMain;
 DllMain(DLL_PROCESS_ATTACH);
end.



 
Сергей М. ©   (2008-02-05 11:46) [4]


> // здесь?


Здесь она уже загружена


 
Thrasher ©   (2008-02-05 14:17) [5]

Почему бы не использовать динамическую линковку?
Когда надо
LoadLibrary;
GetProcAddr;
и т.д.


 
Сергей М. ©   (2008-02-05 14:18) [6]

Удалено модератором


 
хам   (2008-02-05 14:18) [7]

> [4] Сергей М. ©   (05.02.08 11:46)
> Здесь она уже загружена

Собственно, если я не путаю, этот код будет вызван до возвращения управления подключающей функции.


 
Сергей М. ©   (2008-02-05 14:19) [8]


> хам   (05.02.08 14:18) [7]


А по барабану.
На момент вызова этого кода модуль уже загружен.


 
Игорь Шевченко ©   (2008-02-05 14:37) [9]

Сергей М. ©   (05.02.08 14:19) [8]

Собственно, она выгрузится, если DllMain завершится неудачей


 
Thrasher ©   (2008-02-05 14:46) [10]

Люди! Почитайте про форматы PE-файлов! При загрузке екзешника в память, загрузчик ОС заполняет таблицу импорта и если DLL прописана статически (т.е. в модуле указан способ вызова типа
function DLL_func:integer;export "name.dll" ), то она ПО-ЛЮБОМУ будет загружена в АП процесса. Поэтому если не нужно чтобы DLL загружалась необходимо использовать динамическую линковку.

А вообще лучше всего узнать конкретно какая задача преследуется


 
Сергей М. ©   (2008-02-05 15:00) [11]


> Игорь Шевченко ©   (05.02.08 14:37) [9]
>
> Сергей М. ©   (05.02.08 14:19) [8]
>
> Собственно, она выгрузится


По барабану.
В АП целевого процесса модуль успел поприсутствовать.


 
Сергей М. ©   (2008-02-05 15:04) [12]

Удалено модератором


 
хам   (2008-02-05 15:15) [13]

> [11] Сергей М. ©   (05.02.08 15:00)
> В АП целевого процесса модуль успел поприсутствовать.

И наследить там, ага?


 
Сергей М. ©   (2008-02-05 15:18) [14]


> хам   (05.02.08 15:15) [13]


А кого это волнует, успел он наследить или не успел ?

Автора волнует именно "попытка загрузки", а не "успел/не успел наследить")


 
хам   (2008-02-05 15:25) [15]

Удалено модератором


 
ketmar ©   (2008-02-05 15:28) [16]

Удалено модератором


 
Сергей М. ©   (2008-02-05 15:29) [17]

Удалено модератором


 
Сергей М. ©   (2008-02-05 15:30) [18]

Удалено модератором


 
хам   (2008-02-05 15:31) [19]

> [17] Сергей М. ©   (05.02.08 15:29)
> Да ну ?!
> И авторская цитатка найдется ?)

А ты знаешь другой способ выяснения условий и произведение неких действий по этим условиям, кроме как выполнение кода? Я — нет, отсюда и вывод, что «автора волнует».


 
Сергей М. ©   (2008-02-05 15:35) [20]

Удалено модератором


 
Сергей М. ©   (2008-02-05 15:42) [21]

Удалено модератором


 
Сергей М. ©   (2008-02-05 15:46) [22]

Удалено модератором


 
хам   (2008-02-05 15:47) [23]

Удалено модератором


 
Сергей М. ©   (2008-02-05 15:49) [24]

Удалено модератором


 
ketmar ©   (2008-02-05 15:50) [25]

>[19] хам (05.02.08 15:31)
>А ты знаешь другой способ выяснения условий и произведение неких действий
>по этим условиям, кроме как выполнение кода? Я — нет, отсюда и вывод, что
>«автора волнует».

где сказано, что код должен находиться в той же DLL?


 
Сергей М. ©   (2008-02-05 15:52) [26]

Во, блин) .. Отмодерасили и не извинились)


 
хам   (2008-02-05 15:54) [27]

> [25] ketmar ©   (05.02.08 15:50)
> где сказано, что код должен находиться в той же DLL?

Нигде не сказано, но признайся, ты тоже считаешь, что для автора в 90% случаев ответ [2] достаточен. К чему спорить то?


 
Сергей М. ©   (2008-02-05 15:57) [28]


> хам   (05.02.08 15:54) [27]


Что уж тут "признаваться" ?)

Сейчас вновь "отмодерасят") .. Даже не читает кое-кто посты в ветке - сразу кнопки давит) .. Мож не в духе или пьян) ..

А так бы поговорили предметно.


 
Leonid Troyanovsky ©   (2008-02-05 20:02) [29]


> хам   (05.02.08 15:54) [27]

> Нигде не сказано, но признайся, ты тоже считаешь, что для
> автора в 90% случаев ответ [2] достаточен.

Достаточен [1].
Длл может быть загружена as datafile или иным образом замаплена.
Т.е., до [2] дело может и не дойти.

--
Regards, LVT.



Страницы: 1 вся ветка

Текущий архив: 2008.03.02;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.018 c
2-1201860517
mrFreeman2007
2008-02-01 13:08
2008.03.02
Анализатор спектра


15-1201541612
Коля
2008-01-28 20:33
2008.03.02
Инсталятор


2-1202467900
Artem
2008-02-08 13:51
2008.03.02
listbox и image


3-1191992191
Mery
2007-10-10 08:56
2008.03.02
Проблема с построением запроса


2-1202556804
oleg_teacher
2008-02-09 14:33
2008.03.02
События