Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 有没有办法阻止Reflector反映我的源代码?_.net_Reflector_Disassembly - Fatal编程技术网

.net 有没有办法阻止Reflector反映我的源代码?

.net 有没有办法阻止Reflector反映我的源代码?,.net,reflector,disassembly,.net,Reflector,Disassembly,有没有一种方法(可靠且最好不是商业性的)可以防止反射器反射我的源代码 谢谢, Adi否。Reflector会像.NET运行时那样查看程序集,以便生成要执行的本机代码。您希望的最好方法是修改代码,使读者(稍微)更难理解 执行模糊处理的一些优点和缺点可以在try dotfuscator上找到。2005/2008有一个社区版。如果无法重新构建代码(痛苦的),即.NET组件(公共)调用的ATL/COM对象(私有) 选择权在你 没有办法阻止.net代码的反编译,也就是说一个好的模糊器会使反射的代码更难阅读

有没有一种方法(可靠且最好不是商业性的)可以防止反射器反射我的源代码

谢谢,
Adi

否。Reflector会像.NET运行时那样查看程序集,以便生成要执行的本机代码。您希望的最好方法是修改代码,使读者(稍微)更难理解


执行模糊处理的一些优点和缺点可以在try dotfuscator上找到。2005/2008有一个社区版。如果无法重新构建代码(痛苦的),即.NET组件(公共)调用的ATL/COM对象(私有)


选择权在你

没有办法阻止.net代码的反编译,也就是说一个好的模糊器会使反射的代码更难阅读,其中一些像dotfuscator会阻止reflector显示C#代码;但是,您将始终能够看到IL

Dotfuscator中的一个选项是使用不可打印的名称(Reflect on reflector),这使得反编译非常困难

微软曾经出售一种软件保护和授权服务,该服务将对IL进行加密,并使用与加密密钥绑定的自定义VM,从而防止使用传统工具进行反射。这会带来巨大的性能成本,但如果您想保护关键算法,例如您的许可代码,这是很好的


如果你正在寻找一个好的模糊器,试试看

不久前有一个反反射器技巧非常有效,因为.NET reflector无法将一条特定的IL指令转换为c#代码,但他们已经发布了补丁,乐趣已经结束。

也是一个很棒的产品。他们还有一个许可解决方案(用于创建序列号等,然后通过您自己的激活服务器将其激活)。0

选择非常简单,选择SmartAssembly!不要把你的时间和金钱浪费在市场上的其他混淆器上。我花了更多的钱在不计费的时间评估竞争产品。它们都有致命的缺陷,几乎不可能调试。SmartAssembly是一个易于使用、有良好文档记录、精良的应用程序,具有非常好的支持。在他们的论坛上发布一个问题,并期望实际开发人员能够以合理的速度给出答案

SmartAssembly不仅仅是一个干扰器。它有一系列功能,包括一个内置的、高度可定制的崩溃报告生成器,您的客户可以通过电子邮件自动发送给您。您可以在自己的服务器或RedGates服务器上查看这些报告。我无法告诉您,在测试或发布pro时,这有多有用它还生成调试器文件,这样您就可以调试您的过时产品可能遇到的任何发布后问题


如果您正在交付一个商业应用程序,将钱花在一个像样的obsfuscator上是有意义的。这里的错误选择可能会损害您的知识产权,或者更糟糕的是,会导致您进行几天可怕的调试。与SmartAssembly的成本相比,这将花费多少成本?

Reflector不使用反射来显示您的源代码。它使用.Net元数据(以众所周知的发布格式)来实现这一点


没有办法防止这种情况发生,但通过混淆程序集使其变得毫无意义。混淆之后,类/方法/字段将被重命名,方法中的内联字符串将被加密,方法调用被隐藏,方法控制流被置乱等等。因此,使用Reflector的任何人都将看到大量垃圾,并且将无法进行sen大部分都是这样


免责声明:我为LogICNP软件工作,开发人员

可选地,可以用本地C++应用程序引导你的.NET应用程序,然后你可以对所有.NET DLL文件进行加密和加密。

使用Bootstrap C++应用程序将所有文件解密为基于内存的字节数组(物理实体的精确副本)。 <>我的方法是把所有.NET文件保存在一个带有.dAT扩展名的加密文件中。C++代码将文件抓取到内存映射文件中,然后使用CLR宿主API将我的本地C++应用程序转换成.NET应用程序,然后使用加载使用

Assembly.Load(字节[]…)

所以在我的应用程序中,我避免创建.NET exe,并将我的C++应用程序扩展为exe,所以我的所有表单、控件等都在.NET DLL中生存。< /P> 1免责声明:我为因斯泰特公司工作。引用的微软产品以iSHITECK的[软件潜在代码保护器](www. isith.com /代码保护器)的方式存在。NB代码是(和)转换为另一个随机指令集,而不是单独直接加密(尽管当然有许多竞争产品正是这样做的,并且有这种方法的所有优点和缺点)