ОБСУЖДЕНИЕ

Вызов Dll

3 ответов 4,6 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Привет Форумчане!

Ребята проблема такая. мне надо определить кто вызвал DLL.
т.е. например есть Программа А вызывает DLL
Программа Б вызывает DLL

как в этой DLL определить кто её вызвал, Программа А или Программа Б или еще кто-нибудь. Просто в зависимости от этого будет зависеть реакция.

Но наверное моя ситуация посложнее поскольку эту DLL вызывают драйверы работающие в нулевом кольце.
Что скажете по моей проблеме?
 
Прописываться в функцию LoadLibrary, в библиотеке kernel32.dll, и еще нужно будет отключить SFC(защита файлов Windows), либо одновременно обработать еще файл из dllcache. Там и можно будет прилепить обработчик, который сделает что нужно, при обнаружении в подстановке параметра-пути к твоей DLL.
 
про вызов DLL из драйвера ядра ничего не скажу
но при загрузке DLL в адресное пространство процесса система вызывает функцию DllMain библиотеки с параметром DLL_PROCESS_ATTACH
и здесь можно определить, какой процесс загружает DLL
 
Просто в зависимости от этого будет зависеть реакция.

Ну если для этого, то определи в программах А и Б регламент вызыва своей библиотеки (пропиши в библиотеке функцию в которую эти программы передаю свои "позывные") :-)