有什么方法可以阻止 .NET Reflector 在程序中工作?
例如:我正在开发一个包含机密数据(如 gMail 地址和密码)的程序,我不希望有人看到它们。
我怎样才能做到这一点?
有各种工具可以通过不同的技术来保证这一点。
例如,许多商业混淆器除了加密字符串和混淆源之外,还会在 IL 中引入允许程序运行但会破坏(大部分/全部)当前逆向工程工具(如 .NET Reflector)的东西。
话虽如此,将这种类型的数据保存在应用程序中永远不会安全。 工具所能做的最好的事情就是让获取信息变得更加困难,但绝不会让它变得不可能。
一个“掩盖”它并打破混淆工具的工具仍然不完美——只要有足够的时间和精力,有人可以从你的程序中获取这些信息。如果信息对运行时可用,那么有足够决心和动力去找到它的人就可以使用它。因此,重要的私人信息(如密码)不应保存在可执行文件中。
是的,搜索“.NET 混淆器”。有几种可用的工具。
但是,您永远不应该在代码中嵌入您的电子邮件用户名/密码。这是错误的。抛开安全性不谈,如果您需要更改电子邮件密码,您会怎么做?你能升级你的软件的所有副本吗?
混淆器往往很少提供保护数据,例如您在应用程序中保留的内容。它们主要是为了保护代码和逻辑不被逆向工程,而不是文字。更好的方法是让您的客户端应用程序与服务器端应用程序对话,该应用程序为其提供所需的数据,而不是让您的客户端直接与安全服务器进行协商。通过这种方式,您可以在服务器和客户端应用程序之间设置安全的加密方法。