C++ Exe Encryption?
C++ Exe Encryption?
我需要加密microsoftvisualc++编译器为我制作的exe文件吗?我有一个用几个库制作的游戏,我已经加密了所有的资源,但我担心有人闯入exe并更改代码,这可能吗?
没有办法制造出无法破解的软件。如果它在用户机器上,理论上用户可以完全控制它。
你能做的就是让人们更难破解。你正在寻找的是所谓的"可执行压缩"。Armadillo就是这样做的,UPX也是。
一个完整的PE格式打包程序列表可以在这里找到。
要加密压缩资源,您可以使用带有支持加密的归档格式的LZMA SDK。不过要小心你试图隐藏加密密钥的地方。就像他们说的,"你可以跑,但你不能躲":)
欢迎来到DRM的丑陋世界
无论您将使用哪种技术,如果您将可执行文件和资源同时交付给最终用户并且值得这样做,那么它们最终将被破解,而您对此无能为力。你可能只会增加解密过程的难度,但增加安全性只会影响合法用户,而且你会浪费你的时间,你可以把这些时间花在改进软件上。
苹果程序员肯定比你我强,但他们所有的iphone最终都被破解了。
这没什么意义。为了执行程序,必须在内存中对其进行解密,因此解密后的代码将保存在可以转储的内存中。
但是,您可以对您的可执行文件签名(有关详细信息,您可以阅读本文)。当可执行文件被签名时,它的完整性受到保护,最好的部分是大多数操作系统(包括Windows)都支持这一点。如果可执行文件被修改,操作系统可以检测到篡改,并且不会启动它(或者至少警告用户)。相关文章:
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 终端不会为C++文件创建.exe文件吗
- 在Windows中以.exe的形式运行c++
- Visual Studio mkl_link_tool.exe链接错误
- PrintWindow函数在notepad.exe中出错
- VSCode C++ 编译的exe感染了Win32:TrojanX-gen[Trj]
- 将返回值从 exe 传递到 bat,并将其传递给 C# 中的进程
- 获取当前正在运行的 exe 名称(不是路径)
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- 1d.exe找不到SFML文件?
- VI工作室代码错误无法打开输出文件主.exe
- 如何为每个客户生成自定义 exe
- 使用参数在 C# 的C++上运行.exe
- 在 ******.exe 中0x00000000772CA267 (ntdll.dll) 处未处理的异常:0xC0000
- 如何在Visual Studio Code中重命名我的a.exe文件?
- 解析引用 |exe/dll vs lib
- Q没有管理权限的 exe 无法启动维护工具
- 如何定义自定义生成配置类型,其中通常是.exe的目标改为 DLL
- Eclipse 没有在 Windows (C++) 中编译.exe
- C++ Exe Encryption?