Kokila Jayasingh Ответов: 1

Как я могу предотвратить вызов внешней библиотеки DLL, помещенной в мое приложение.


External dll eg.version.dll is searching in my app path and its throwing NAME NOT FOUND in my application path in Process monitor log. I place a version.dll(calculator.dll i renamed as version.dll) in the path now its getting invoked simultaneously with my exe. how to avoid this. any solution pls suggest


Что я уже пробовал:

В основном методе моего exe-файла я удалил файлы (кроме использованных .dll/.exe) в моем apppath. теперь это тоже версия.dll удаляется и плюс version.dll(что есть calculator.dll) вызывается .

Richard MacCutchan

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

Kokila Jayasingh

Хакерство-это моя забота. если какой-либо хакер разместит неправильную библиотеку dll с тем же именем(version.dll) тогда что может исполняться одновременно правильно.

1 Ответов

Рейтинг:
7

Dave Kreskowiak

Вы беспокоитесь о том, что действительно не можете на 100% контролировать и предотвратить. Атака должна быть специально разработана вокруг вашего приложения. Если у вас нет сотен тысяч установок того, что делает это приложение, вам действительно не о чем беспокоиться. Ваше приложение не будет достаточно сочной мишенью для тех, с кем стоит возиться.

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


Kokila Jayasingh

Но все же качество приходит, это также своего рода петля дыры в приложении, которая остро команда проекта ищет правильное решение, чтобы предотвратить взлом таким образом.

Kokila Jayasingh

И я удаляю dll, которая присутствует только в моем пути приложения, а не в каталоге system32, более того, и я хочу ограничить, когда process monitor нашел успех в моем пути, то он не должен вызывать версию.dll из моего пути к приложению.

Dave Kreskowiak

Погуглите "сильное именование" и начните читать. Это практически единственный вариант, который у вас есть.

https://msdn.microsoft.com/en-us/library/xwb8f617(v=против 110). aspx

Dave Kreskowiak

Если вы положите все это .DLL находится в папке вашего приложения, в разделе Program Files, и будет доступна только для чтения обычным пользователям. Они не смогут заменить его .DLL-файлы или запись в любые файлы там. С другой стороны, администраторы...

Kokila Jayasingh

этот вариант тоже уже отработан, со всеми сильными именами для нашей библиотеки dll.. дело в том, что он не вызывает из нашего приложения внешнюю библиотеку dll. когда наш основной метод выполняется одновременно из кэша processmonitor, который сначала ищет путь к нашему приложению и выполняет версию.dll, которая никогда не используется в нашем приложении, но ищет в пути приложения.

Kokila Jayasingh

дай-ка я попробую, Дэйв. Спасибо за решение. но у нас есть исполняемые файлы приложений в виде файла. exe, который, в свою очередь, вызывает dll. Правильные права администратора людям разрешено делать это там, где другие не могут.