Главная страница
    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.013 c
14-56816
Шустрый
2003-10-21 13:08
2003.11.17
XP Manifest


1-56649
genek84
2003-11-05 12:32
2003.11.17
Помогите с Image


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


1-56605
Micah'GF
2003-11-05 22:12
2003.11.17
Чем очистить TImage


1-56705
Maxon
2003-11-07 12:28
2003.11.17
Как управлять Windows Media Player





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский