我正在开发一个复制保护软件,我正在尝试创建任何类型的可执行文件(托管和非托管)的包装器。然后,此包装器将尝试执行包装的可执行文件,而不像正常情况一样将其写入光盘,并使用Process.Start()
执行它。
我使用.Net 4.0 Assembly和Appdomain来使其正常工作,但正如我已阅读和测试过的那样,它只适用于.Net可执行文件。如果不将它“裸”地写入驱动器,我将如何处理并执行任何类型的可执行文件?
我可以在加密的压缩文件中执行它吗? 还是MemoryMappedFile?
答案 0 :(得分:13)
真的是在浪费你的时间。您不能阻止某人复制您的可执行文件,获取您的代码或其他任何内容。即使您可以完美地保护磁盘上的可执行文件,当它开始运行时,有人可以使用调试器来转储可执行文件,甚至可以从内存映射文件中转储。这就是Xenocode,或.NET Reactor等产品或任何其他打包器的产品如何被打败。
更好的选择是停下来思考一下你真正想要实现的目标。您是否担心违反许可协议的人?您是否担心您的软件出现在The Pirate Bay?如果你制作有用的软件,这两件事都是可能的,而不是可能性。如果合适,使用版权保护您的软件,并使用专利保护您的算法。然后你有法律追索权追捕违法者。
很抱歉爆破你的泡沫,但没有技术解决方案无法击败。可以模拟Dongles,可以修补Web服务,可以嗅探加密密钥等。花时间使您的软件变得更好,而不是试图保护无法保护的内容。