防止 .NET 反向工程/反编译

本文关键字:编译 NET 防止 | 更新日期: 2023-09-27 18:36:22

有没有办法阻止.NET Reflector在程序中工作?

例如:我正在开发一个包含机密数据(如gMail地址和密码)的程序,我不希望有人可以看到它们。

我该怎么做?

防止 .NET 反向工程/反编译

有各种工具通过不同的技术承诺这一点。

例如,许多商业混淆器除了加密字符串和混淆源代码外,还会在 IL 中引入允许程序运行但破坏(大部分/全部)当前逆向工程工具(如 .NET Reflector)的东西。

话虽如此,将这种类型的数据保留在应用程序中永远不会安全。 工具能做的最好的事情就是使获取信息变得更加困难,但永远不要使信息变得不可能。

一个"屏蔽"它并破坏混淆工具的工具仍然不完美 - 如果有足够的时间和精力,有人可以从你的程序中获取这些信息。 如果信息可供运行时使用,那么具有足够决心和动力的人就可以找到它。 因此,密码等重要私人信息不应保留在可执行文件中。

是的,搜索".NET obfuscator"。有几种工具可用。

但是,切勿在代码中嵌入电子邮件用户名/密码。这是错误的。撇开安全性不谈,如果您需要更改电子邮件密码,您会怎么做?您可以升级软件的所有副本吗?

混淆

器往往很少为数据提供保护,例如您在应用程序中保留的内容。它们主要用于保护代码和逻辑不被逆向工程,而不是文字。更好的方法是让客户端应用程序与服务器端应用程序通信,该应用程序向其提供所需的数据,而不是让客户端直接与安全服务器协商。通过这种方式,您可以在服务器和客户端应用程序之间设置安全的加密方法。