我正在考虑对我的.NET应用程序使用模糊处理。我的问题是,这些混淆器中的任何一个都会混淆我的代码调用的任何.NET API。因此,例如,如果我的类调用任何.NET文件流函数或与套接字相关的API,它们是否也会被混淆?
答案 0 :(得分:2)
是的,可以将调用混淆为.Net API,Crypto Obfuscator正是这样做的 - 它取代了使用代理方法对.Net API进行的方法调用。
在:
Application.EnableVisualStyles();
后:
A.A();
免责声明:我在Crypto Obfuscator的开发商LogicNP Software工作。
答案 1 :(得分:0)
类,属性,参数,字段和方法的公共名称不会被混淆。
您向引用程序集公开的API必须是公共的,因此API不会被混淆。
答案 2 :(得分:0)
不,系统.NET程序集 - 非常自然 - 不会被混淆。它们不是你的代码。除非您尝试将它们包含在您的混淆配置中,否则不会触及它们。如果你做包含它们,你很可能最终会得到一个无效的结果。
此外,人们通常不会混淆public
API(类,成员......)。但是,如果它们是为了在您的软件中仅仅进行绑定而公开的,那么您的混淆器也可能会混淆它们。
答案 3 :(得分:0)
理论上当然可以混淆你对.net库的调用,但显然不是.net库本身。
可以在许多地方用委托调用替换对库函数的调用。这会导致一定的性能损失,而像ngen这样的东西可能会受到影响。它只能防止程序集的简单反射,而不是在代码在调试器中运行时。
答案 4 :(得分:0)
是的,实际上它被称为交叉装配混淆。它确实需要完美的混淆。
重命名外部引用因此大大增加了混淆结构的数量。给定一组相互连接的程序集,FxProtect将统一重命名从其他程序集引用的类,方法和字段。例如,如果程序集A中声明的类A从程序集B引用,并且FxProtect将类A重命名为A1,则它还将B的外部引用从A重命名为A1。
我正在使用FxProtect进行交叉汇编混淆。你可以试试...... .NET Obfuscator