繁体   English   中英

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

[英]Preventing .NET reverse engineering/decompilation

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

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

我怎样才能做到这一点?

通过不同的技术,有各种工具可以做到这一点。

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

话虽这么说,在应用程序中保留这种类型的数据永远不会是安全的。 一个工具可以做的最好的事情就是让信息变得更加困难,但永远不会让它变得不可能。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM