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

Вниз

Как предотвратить загрузку Dll в определенный процесс   Найти похожие ветки 

 
vic_vm   (2003-09-20 16:05) [0]

Где-то встречал примерно такой метод предотвращения загрузки Dll в определенный процесс:
В DllMain на уведомление DLL_PROCESS_ATTACH определяем имя главного модуля процесса и если не хотим чтобы наша Dll загружалась возвращаем в значении функции FALSE.
Проблемма в том что в MFC DllMain это функция, а в Delphi это процедура. Как быть?


 
MBo ©   (2003-09-20 16:47) [1]

получилось так:

library DllPr;

uses
Windows, dialogs;

procedure A(var Param:Integer);
begin
Param:=Param+1;
end;

procedure DLLEntryPoint(dwReason: DWord);
var lproc: string;
l:integer;
begin
case dwReason of
DLL_PROCESS_ATTACH: begin
setlength(lproc,max_path);
l:=getmodulefilename(0,Pchar(lproc),max_path);
setlength(lproc,l);
ShowMessage("Attaching to process "+lproc);
if pos("Project2",lproc)>0 then
ExitCode:=1;
end;
DLL_PROCESS_DETACH: ;
end;
end;

exports
A;

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


 
vic_vm   (2003-09-21 13:53) [2]

2 MBo
Ну и что мы в итоге получим?
Запускаю Project2 из под делфей и все равно вижу
в списке модулей (View->Debug Windows->Modules) DllPr.dll
А если запускаю Project2 без делфей то он вообще не запускается.
Пишет "Ошибка при инициализации приложения (0x0000142). Для выхода нажмите кнопку OK"


 
vic_vm   (2003-09-21 14:02) [3]

Поправлюсь - этот код не работает в случае
ранего связывания
procedure A; external "DllPr.dll" name "A";

А при позднем связывании
LoadLibrary("DllPr.dll");
Все работает нормально.


 
Digitman ©   (2003-09-22 16:06) [4]


> vic_vm


тебе ж говорят : состояние переменной ExitCode, устанавливаемая тобой в хде иниц-ции DLL, известит ОС об успешной либо неуспешной инициализации библ-ки

ExitCode = 0 - иниц-я прошла успешно
ExitCode = 1 - иначе



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
14-56835
vitalik
2003-10-28 00:34
2003.11.17
невидимая программа


4-56959
kostik78ua
2003-09-19 21:38
2003.11.17
FindFirstChangeNotification


1-56712
malamba
2003-11-06 13:28
2003.11.17
сохранение файла Excel ...


3-56474
mrl
2003-10-28 18:33
2003.11.17
DataModule, Form и dll


3-56503
aldevinas
2003-10-10 00:13
2003.11.17
bitmask