【发布时间】:2017-11-10 09:58:24
【问题描述】:
有一个使用我的 DLL 的程序,该程序现在位于该软件所在的同一文件夹中,因此它会自动使用它。
如何强制我的软件仅在它所在的文件夹中搜索这个特定的 DLL?
我想防止有人在我的位置植入他们的 DLL,从而从程序中窃取信息。我可以按位置验证 DLL,但我不确定如何防止程序从其他位置获取 DLL。
换句话说,如何防止有人从软件文件夹中删除我的 DLL 并将其 DLL 插入到程序默认搜索 DLL 并且我的程序找不到文件在其文件夹中,它将开始在 Windows 的一般位置搜索它,DLL 将等待它他这样做了
简而言之,我的问题是:
A 有没有办法阻止我的软件在我正在运行的文件夹之外的任何文件夹中查找特定的 DLL?
B 程序在 Windows 中查找 DLL 的所有地方是什么(默认情况下,我会检查每个人并确保没有“礼物”)
谢谢
【问题讨论】:
-
自己使用
dlopen()。 -
或 LoadLibrary for Windows API ?
-
是什么阻止了某人替换您文件夹中的 DLL,而不仅仅是删除它?
-
应用程序目录已被保护。如果有人可以替换应用程序目录中的二进制文件,他们可以做的远比你试图保护的要多。