C# 包装和保护可执行文件

C# 包装和保护可执行文件,c#,c++,wrapper,C#,C++,Wrapper,我正在开发一个拷贝保护软件,我正在尝试为任何类型的可执行文件(托管和非托管)创建一个包装器。然后,此包装器将尝试执行包装好的可执行文件,而不会像正常情况那样将其写入光盘,并使用Process.Start()执行它 我使用了.Net 4.0程序集和Appdomain来让它工作,但正如我所阅读和测试的,它只适用于.Net可执行文件。我如何执行任何类型的可执行文件而不将其“裸体”写入驱动器 例如,我可以在加密的压缩文件中执行它吗? 还是记忆文件?你真的是在浪费时间。您无法阻止他人复制您的可执行文件、获

我正在开发一个拷贝保护软件,我正在尝试为任何类型的可执行文件(托管和非托管)创建一个包装器。然后,此包装器将尝试执行包装好的可执行文件,而不会像正常情况那样将其写入光盘,并使用
Process.Start()
执行它

我使用了.Net 4.0程序集和Appdomain来让它工作,但正如我所阅读和测试的,它只适用于.Net可执行文件。我如何执行任何类型的可执行文件而不将其“裸体”写入驱动器

例如,我可以在加密的压缩文件中执行它吗?
还是记忆文件?

你真的是在浪费时间。您无法阻止他人复制您的可执行文件、获取您的代码或其他任何内容。即使您可以完美地保护磁盘上的可执行文件,在它开始运行时,也可以使用调试器转储可执行文件,即使是从内存映射的文件。这就是像Xenocode,或.NET Reactor,或任何其他包装机这样的产品被击败的原因

对你来说,更好的选择是停下来想想你真正想要实现的是什么。您是否担心有人违反许可协议?你担心你的软件出现在海盗湾吗?如果你制作了有用的软件,这两件事都是可能发生的,而不是可能发生的。如果合适的话,用版权保护你的软件,用专利保护你的算法。那你就有追查违法者的法律追索权了


很抱歉打破了你的泡泡,但是没有一个技术解决方案是不能被击败的。可以模拟加密狗,可以修补web服务,可以嗅探加密密钥,等等。花时间让您的软件变得很棒,而不是试图保护无法保护的东西。

AFAIK正常可执行文件在执行前不会写入光盘。我不知道.Net。无论如何,所有可执行文件都需要在RAM中的机器代码(这意味着未加密和未压缩)中才能执行。@m0skit0-.NET应用程序的工作方式与普通可执行文件类似。我认为您无法使用Process.start()启动它-您可以将程序加载到内存中,然后对其开始地址执行jmp,但是这样做可能会有各种可怕的安全问题。要执行它们,它们要么在磁盘上,要么完全加载,未压缩,未加密到内存中。我想你可以打电话给入口点,剩下的就交给它了。我认为从.NET做这件事有点牵强…+1;如果你的软件值得盗版,它将不受你的保护。如果不是,那么就没有必要保护。我想你是对的,我会重新考虑这个问题。其想法是通过包装器控制exe的启动。但我相信这是不可能的,就像你说的。我猜另一个想法是加密exe,然后包装器会解密它,并在第一次启动时将其写入光盘。请注意,包装器必须获得服务器的批准才能执行此操作。