0

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

任何想法如何防止它?我的项目是用 C++ 编程的。

提前致谢。

4

2 回答 2

0

您可以要求获得 DLL 的公司提供该 DLL 的 LIB。然后你可以静态链接到这个 LIB。这样做时,库的代码将成为您代码的一部分,因此对挂钩是透明的!

于 2012-05-07T13:06:29.513 回答
0

另一种可能性(在确实需要外部 DLL 的情况下):您可以尝试说服您的 DLL 提供程序不按名称而是按序号导出函数。这通过默默无闻导致安全。这不会阻止挂钩或替换,但至少这不会使导出的函数明显易于理解。像 73(按编号导出函数)而不是 CreateMyFile(按名称导出函数)。

于 2012-05-07T13:11:25.127 回答