Как предотвратить запуск моей dll, когда определенный процесс не активен - PullRequest
0 голосов
/ 21 января 2019

Итак, я хочу, чтобы моя dll могла быть инъецирована только моим инжектором, и я решил, что хороший способ сделать это - позволить моей dll открываться, когда инжектор работает.Но я понятия не имею, как это сделать.

1 Ответ

0 голосов
/ 21 января 2019

Как отметил Майур в комментариях, ваша DLL может перечислять запущенные процессы , используя EnumProcesses(), и получать их имена в поисках совпадений с вашим инжектором. Вы можете сделать это в функции точки входа вашей DLL на этапе DLL_PROCESS_ATTACH. Если инжектор не обнаружен, ваша точка входа может вернуть FALSE, чтобы прервать загрузку.

В качестве альтернативы, гораздо более простой способ обнаружить ваш инжектор - это создать именованный мьютекс с помощью CreateMutex() в глобальном пространстве имен ядра, а затем попросить точку входа DLL попытаться получить доступ к этому же объекту. через OpenMutex() и не удается загрузить, если мьютекс не существует. См. Использование именованных объектов для получения более подробной информации.

...