Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];

Вниз

Как предотвратить загрузку 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.009 c
3-56441
CyBeR
2003-10-25 18:16
2003.11.17
Открытие .xls-файла через TTable


1-56683
Stas
2003-11-07 15:21
2003.11.17
Изменение реестра


1-56657
maf66
2003-11-05 08:21
2003.11.17
Перегрузка операторов


14-56917
}|{yk
2003-10-24 16:53
2003.11.17
Как размножаются кроты?


14-56821
Zemmel
2003-10-21 20:23
2003.11.17
Где бы исходники найти.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский