File C++ DLL——如何防止DLL欺骗?

File C++ DLL——如何防止DLL欺骗?,file,dll,spoof,File,Dll,Spoof,我有一个没有源代码的DLL文件,我只是使用LoadLibraryfile.DLL将它链接到我的应用程序,然后它导入一个函数,该函数获取计算机的唯一ID。现在让我们假设我们的黑客检测到这个函数的名称,现在他正在创建一个新的dll文件,其中有相同的名称和相同的函数名。 他的新DLL文件将被替换,只需将他的DLL抓取到目录并替换为我的DLL,唯一ID的函数可用,但不返回任何内容。所以现在我的应用程序得到了一个空白的唯一ID,黑客从我手中逃走了 有什么办法可以预防吗?我的项目是用C++编程的。 提前感谢

我有一个没有源代码的DLL文件,我只是使用LoadLibraryfile.DLL将它链接到我的应用程序,然后它导入一个函数,该函数获取计算机的唯一ID。现在让我们假设我们的黑客检测到这个函数的名称,现在他正在创建一个新的dll文件,其中有相同的名称和相同的函数名。 他的新DLL文件将被替换,只需将他的DLL抓取到目录并替换为我的DLL,唯一ID的函数可用,但不返回任何内容。所以现在我的应用程序得到了一个空白的唯一ID,黑客从我手中逃走了

有什么办法可以预防吗?我的项目是用C++编程的。
提前感谢。

您可以要求获取DLL的公司提供此DLL的库。然后可以静态链接到此库。执行此操作时,库的代码将是代码的一部分,因此对hooking!是透明的

对于外部DLL,另一种可能性是非常必要的:您可以尝试说服DLL提供程序不按名称而是按顺序导出函数。这导致了默默无闻的安全。这不会阻止挂接或替换,但至少不会使导出的函数明显易懂。就像73按编号导出的函数,而不是按名称导出的CreateMyFile函数。

当机器受到严重危害,有人可以替换任意DLL时,他们肯定会找到更值得利用的方法。通过替换对策代码,可以任意绕过您想到的任何对策。