有人提供的信息是,可以在隐藏源代码的同时将C#应用程序“包装”在C ++应用程序中。这是真的?如果是这样,该怎么办?
将来的C ++应用程序是否有任何程序或代码。
P.S。当我开始学习C#时,我并不认为与加密源代码相关的问题。
答案 0 :(得分:1)
您当然可以对程序进行混淆处理,这使得将其反编译为易于阅读的源代码更加困难。但是您不能防止反编译-只要Programm可以由OS,.NET Framework和CPU解释,就可以对其进行逆向工程。甚至很多事情都可能使该框架试图将其应用于您的代码的任何优化都陷入困境。
您的问题在理解C#和.NET方面也存在经典错误。源代码的语言不正确。您使用任何.NET语言(包括C#)编译的所有内容都会转换为(MS)IL代码。 IL实际上与JavaByte代码具有惊人的设计相似性。
因此您的要求应该是将“ .NET”,“ IL”或“ MSIL”代码包装到本机代码中。而且我不确定是否会增加混淆的任何其他层。在内部.NET可执行文件是带有清单和一些Native Bootstrapping code anyway的.NET DLL。为了使框架能够执行IL,它必须在运行时以非加密格式存在于内存中。