Ngen可以用作完美的代码混淆器,以保护您的.NET CIL永远不会到达客户端吗?

我可以在开发PC上运行Ngen并将exe交付给具有兼容.NET Framework版本的每个客户端吗? (假设两者都是x86或x64)Ngen'd exe在不同计算机之间有什么区别?

我知道最新的Ngen会生成一个包含IL +本机代码的exe,可以使用Reflector之类的东西将其提取并“转换”回源代码。但是,ngen for .NET framework 1.1会在生成的exe中删除IL,如果使用.NET Framework 1.1,则可能成为代码安全的选择。

最佳答案

不可以,CLR需要进行IL组装才能找到相应的本机映像。因此,您仍然需要分发IL二进制文件。
有关CLR如何定位本机图像的更多信息,请参见本页:http://blogs.msdn.com/b/abhinaba/archive/2013/12/11/net-loading-native-ngen-images-and-its-interaction-with-the-gac.aspx

此外,NGEN图像并非旨在分发。本机映像生成与运行它的机器紧密相关。

10-08 08:06