我知道这是一个奇怪的请求,但我需要混淆原始的c#源代码。
虽然这是一个坏主意,但c#代码将通过CSharpCodeProvider在客户端编译。 c#中是否存在任何用于混淆源代码的类?或者,是否有第三方图书馆这样做?
我已经考虑过使用Roslyn和手动变量重命名但我无法找到有关如何执行此操作的任何信息。有谁知道如何使用Roslyn重命名变量(并加载解决方案)?
我尝试过手动语法解析器,但效果不佳。
到目前为止我做了什么:
删除了所有评论。
删除了所有换行符和空格。
将所有不同项目中的所有文件放入一个包含随机25个字符的字母数字名称的文件夹中。
在代码行中添加了随机注释。不会阻止任何人,但让我头疼地阅读public /*SJKDSJKDJ398sLAjljKKxklw*/int /*SDSDSJCJKIORIO*/ privateServerKey = /*SDKSDKSDFKJSFKJ*/ ...
答案 0 :(得分:3)
的bizzare?不会。有时候必须向第三方发送可编译的源代码,而不会让第三方轻易理解源代码。我们同意混淆器不会使代码无法理解,但这不是重点。你的房子前门锁不会阻止任何严重的小偷,但如果你有房子,你就不会有一个傻瓜。
我们C# Source Code Obfuscator可能会做你想要的。
它的主要功能是以安全的方式对标识符进行加密。代码库越大,效果越好。
它还会删除空格和注释以损害可读性。它不会在不同目录之间移植代码文件。