防止资源DLL被黑客攻击

时间:2009-06-05 06:35:06

标签: c++ mfc resource-dll

我在C ++ / MFC中开发并将所有资源放在一个单独的DLL中。

我见过资源DLL被修改的情况,产品是非法出售的,有不同的名称,图形等。

如何防止资源DLL被修改/黑客攻击?

8 个答案:

答案 0 :(得分:4)

签名然后检查签名是否有效。我会为公司使用某种官方证书,但是自签名会做。

快速谷歌出现了:

Digital Code Signing Step-by-Step Guide(虽然它看起来像是Office XP)

Prevent DLL Tampering on Windows Apps

更新:

同样也需要签署EXE。

正如评论中指出的那样,你无法阻止有足够技巧的人篡改你的申请。这都是关于风险管理的。您想要“冒险”某人篡改您的应用程序多少钱。是否值得花时间和精力来提高标准,以便您需要一个技术更高的人来锻炼您的应用程序?随你(由你决定。

我至少会签署您发布的所有代码文件。它会验证这些文件是否来自您并且未被篡改过。

答案 1 :(得分:1)

如果您信任您的应用,您可以在发货前计算资源dll上的哈希值,并拒绝带有其他哈希值的dll:s。

答案 2 :(得分:0)

你做不到。这些问题必须通过法律来处理,而不是代码。另请注意,任何此类“解决方案”都可能违反用户的合理使用权利。我经常玩修改程序资源以获得乐趣(例如,在Windows登录页面上放置一个Tux)。我没有出去欺骗任何人,甚至没有分发结果。

答案 3 :(得分:0)

您可以校验dll二进制文件,从主程序中检查它,如果不同则退出/禁用功能。它不会阻止某人因为他们可以破解你的exe中的检查代码而扯掉你的东西,但至少它不会那么容易。

答案 4 :(得分:0)

正如每个人都说你只能提高标准以使其更难以入侵,我不会花费更多的时间来处理它而不是使用哈希建议。另一种思考方式(如果你的软件允许的话)是让你的软件在长期内更新等有吸引力。这样人们就会想要一个帐户而不是黑客版本。

答案 5 :(得分:0)

你不能阻止你的应用程序被黑客攻击,因为你不能阻止你的汽车被盗,当然,你可以拥有最先进的警报系统,如果它发现它不是所有者就会被点燃,但有人可能会打破玻璃或穿防火服。简而言之,你不能。

答案 6 :(得分:0)

如果这是商业软件并且你担心盗窃,那么你应该看看第三方解决方案。有许多软件旨在防止共享软件。它们的价格不同,具有不同的特征。

正如其他人所说,没有纯软件解决方案是完全安全的。但我建议将其外包并专注于您的应用程序提供的业务价值。

答案 7 :(得分:-1)

您可以使用加密密码对其进行压缩,并在重新加载之前将其解压缩到临时位置。像

这样的东西
BOOL CMyApp::InitInstance()
{   
   CString  TempName = TempFileName();
   Unzip("MyZippedResources.Zip",TempName,Password);
   HINSTANCE hInst = LoadLibrary(TempName);
}

有许多free zip libraries可以涵盖解压缩和密码保护abovw