7

我是否需要加密 Microsoft Visual C++ 编译器为我制作的 exe 文件?我有一个用几个库制作的游戏,我已经加密了所有资源,但我担心有人闯入 exe 并更改代码,这可能吗?

4

3 回答 3

4

没有办法制作无法破解的软件。如果它在用户机器上,理论上用户可以完全控制它。

你可以尝试做的是让人们更难破解。您要查找的内容称为“可执行压缩”。犰狳做这样的事情,UPX 也是如此。

可以在此处找到 PE 格式打包程序的完整列表。

要加密压缩资源,您可以使用具有支持加密的存档格式的LZMA SDK 。请注意您尝试隐藏该加密密钥的位置。正如他们所说,“你可以跑,但你不能隐藏”:)

欢迎来到丑陋的 DRM 世界。

于 2013-03-21T06:37:07.687 回答
3

无论您将使用哪种技术,如果您将可执行文件和资源都发送给最终用户,并且如果值得,它们最终被破解,您对此无能为力。您可能只会使解密过程更加困难,但提高安全性只会影响合法用户,并且您会浪费时间,您可以将这些时间花在改进软件上。

苹果程序员肯定比你我好,但他们所有的 iPhone 最终都被越狱了。

于 2013-03-21T07:45:32.837 回答
0

这没有多大意义。为了执行程序,它必须在内存中解密,因此解密的代码将在内存中,可以从中转储。

但是,您可以对可执行文件进行签名(有关详细信息,您可以阅读本文)。当可执行文件被签名时,它受到完整性保护,最好的部分是大多数操作系统都支持这一点,包括 Windows。如果可执行文件被修改,操作系统可以检测到篡改并且不会启动它(或至少警告用户)。

于 2013-03-21T06:38:54.043 回答