在.NET中是否可以从正在运行的应用程序中转储IL?

在.NET中是否可以从正在运行的应用程序中转储IL?,.net,obfuscation,il,.net,Obfuscation,Il,假设我的应用程序包含一些算法,我需要保护这些算法不被其他人观察和研究。我正在考虑智能程序集产品的选项,将程序集的加密版本嵌入到主exe程序集资源中。所以,没有解密,工程师就无法调查这些程序集的代码。在运行时,SA会在需要时透明地将它们解密到内存中 所以我的问题是:ReverseEngineer是否可以从运行应用程序的内存中转储程序集的IL 为什么不使用模糊处理?嗯,我的应用程序相当复杂,我见过的所有.NET模糊处理程序都无法正确处理它。一旦您解密IL并将其存储在内存中以执行,感兴趣的第三方就可以

假设我的应用程序包含一些算法,我需要保护这些算法不被其他人观察和研究。我正在考虑智能程序集产品的选项,将程序集的加密版本嵌入到主exe程序集资源中。所以,没有解密,工程师就无法调查这些程序集的代码。在运行时,SA会在需要时透明地将它们解密到内存中

所以我的问题是:ReverseEngineer是否可以从运行应用程序的内存中转储程序集的IL


为什么不使用模糊处理?嗯,我的应用程序相当复杂,我见过的所有.NET模糊处理程序都无法正确处理它。

一旦您解密IL并将其存储在内存中以执行,感兴趣的第三方就可以检索它。你可以顺流而下,在你的应用程序中增加额外的复杂性,但最终有人愿意花时间来获得你的IL

您必须权衡开发对策的成本与某人花费精力浏览您算法的IL(或JIT输出)的可能性。也许一个更强大的商业模糊处理引擎是一个附加值。也许IL的加密和解密是一种增值

我所能说的就是一条很好的安全经验法则:不要让别人访问你不想让别人拥有的东西


如果他们不能访问你的算法,可执行文件的分发是不起动器的:考虑托管解决方案(例如Citrix、虚拟桌面等)。

< P>一旦你对IL进行解密并将其存储在内存中执行,它可以由感兴趣的第三方检索。你可以顺流而下,在你的应用程序中增加额外的复杂性,但最终有人愿意花时间来获得你的IL

您必须权衡开发对策的成本与某人花费精力浏览您算法的IL(或JIT输出)的可能性。也许一个更强大的商业模糊处理引擎是一个附加值。也许IL的加密和解密是一种增值

我所能说的就是一条很好的安全经验法则:不要让别人访问你不想让别人拥有的东西


如果它们不能访问您的算法,可执行文件的分布是不起动器的:考虑托管解决方案(例如Citrix、虚拟桌面等)。

是的,这是可能的,即使它不一定是微不足道的。采用这种方法的几种模糊处理产品都有公开的转储程序,尽管它们的来源非常声名狼藉,我个人不会在非常孤立和非常一次性的机器上使用它们。这并不意味着有意滥用您的IP的人可能会在使用(或开发)此类工具时有任何顾虑。

是的,这是可能的,即使不一定是微不足道的。采用这种方法的几种模糊处理产品都有公开的转储程序,尽管它们的来源非常声名狼藉,我个人不会在非常孤立和非常一次性的机器上使用它们。这并不意味着有意滥用您的IP的人在使用(或开发)此类工具时可能会有任何顾虑。

您放入内存的任何内容都是其他进程可能读取的公平游戏。您放入内存的任何内容都是其他进程可能读取的公平游戏。