2

有什么方法可以阻止 .NET Reflector 在程序中工作?

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

我怎样才能做到这一点?

4

3 回答 3

13

有各种工具可以通过不同的技术来保证这一点。

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

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

一个“掩盖”它并打破混淆工具的工具仍然不完美——只要有足够的时间和精力,有人可以从你的程序中获取这些信息。如果信息对运行时可用,那么有足够决心和动力去找到它的人就可以使用它。因此,重要的私人信息(如密码)不应保存在可执行文件中。

于 2012-06-04T17:17:54.757 回答
3

是的,搜索“.NET 混淆器”。有几种可用的工具。

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

于 2012-06-04T17:18:03.563 回答
2

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

于 2012-06-04T17:25:39.750 回答