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应用程序反编译的脆弱性如何?_.net_Decompiling_Disassembly - Fatal编程技术网

事实检查:.NET应用程序反编译的脆弱性如何?

事实检查:.NET应用程序反编译的脆弱性如何?,.net,decompiling,disassembly,.net,Decompiling,Disassembly,我在MSMobiles.com的博客上看到了以下内容: Net在很多方面都很好,但对于 商业应用程序?不可能!任何人都可以 只要看看你的源代码。高 结束模糊器将帮助很多,但任何 坚定的黑客会修复你的代码 不到一天。我是从你那里知道的 尽管花了1000美元,但这是一次悲惨的经历 关于反盗版和模糊处理工具 然后,它介绍了在.NET中开发商业Windows Mobile应用程序的以下内容: 做好准备,以便在完成后延迟1天 您的竞争对手将复制您的 功能和放置自己的应用程序 在中使用相同的功能 天空市场

我在MSMobiles.com的博客上看到了以下内容:

Net在很多方面都很好,但对于 商业应用程序?不可能!任何人都可以 只要看看你的源代码。高 结束模糊器将帮助很多,但任何 坚定的黑客会修复你的代码 不到一天。我是从你那里知道的 尽管花了1000美元,但这是一次悲惨的经历 关于反盗版和模糊处理工具

然后,它介绍了在.NET中开发商业Windows Mobile应用程序的以下内容:

做好准备,以便在完成后延迟1天 您的竞争对手将复制您的 功能和放置自己的应用程序 在中使用相同的功能 天空市场


对于那些熟悉.NET的人来说:这是事实还是胡说八道?这个问题是特定于Windows Mobile的,还是同样适用于Windows上的.NET?这似乎让我感到惊讶,因为我知道微软在.NET中编写了大量自己的客户端软件(而且许多供应商用Java编写了昂贵的应用程序,显然也有同样的问题),而且他们的IP如此容易被盗似乎很奇怪。

这也适用于windows上的.NET。它也适用于Java

你可以混淆代码,有些混淆器很好(你可以很容易地通过谷歌找到一个好的),但最终,你必须警惕保护你的IP,因为混淆器不是一种完美的技术。混淆器打败了反编译器,反编译器变得更聪明,混淆器变得更聪明,等等


技术上,你可以通过查看编译代码来了解C++程序是如何工作的,或者任何程序都是工作的。只是它的编译级别要比IL(编译.NET应用程序的目的)复杂得多。

它也适用于windows上的.NET。它也适用于Java

你可以混淆代码,有些混淆器很好(你可以很容易地通过谷歌找到一个好的),但最终,你必须警惕保护你的IP,因为混淆器不是一种完美的技术。混淆器打败了反编译器,反编译器变得更聪明,混淆器变得更聪明,等等


技术上,你可以通过查看编译代码来了解C++程序是如何工作的,或者任何程序都是工作的。只是它被编译到的级别要比IL(编译.NET应用程序的目的)复杂得多。

我认为这在很大程度上是没有意义的,原因很简单,如果你的竞争优势和业务成功取决于代码中的某个算法,那么你已经完蛋了。成功的应用不仅仅是代码,它是众多应用之一


如果这是你真正害怕的事情,那么我会投资于混淆和预付一些法律顾问(相当便宜,信不信由你)的费用,他们会代表你向一个你认为偷了你的代码的竞争对手发送终止信。虽然这在法律上几乎是行不通的,但行动的威胁只是你最有效的工具。

我认为这在很大程度上是没有意义的,原因很简单,如果你的竞争优势和业务成功取决于你代码中的某个算法,那么你已经完蛋了。成功的应用不仅仅是代码,它是众多应用之一


如果这是你真正害怕的事情,那么我会投资于混淆和预付一些法律顾问(相当便宜,信不信由你)的费用,他们会代表你向一个你认为偷了你的代码的竞争对手发送终止信。虽然这在法律上几乎是行不通的,但行动的威胁只是你最有效的工具。

去谷歌反射器上看看。是的,它是真实的,是的,它发生了,是的,你的困惑可以帮助,但不是完美的。然后去反射器上反射。不确定Redgate是否仍在混淆它,但原作者使用无法打印的字符对其进行了混淆

但是Java也存在同样的问题,所以选择您的位置。哦,一个真正坚定的黑客会破解任何平台上的任何应用程序,所以选择一个平台来实现它的功能,这是针对你的问题和你的技能设置的


使用工具来提高你的安全性,提高你的门槛

去谷歌反射器。是的,它是真实的,是的,它发生了,是的,你的困惑可以帮助,但不是完美的。然后去反射器上反射。不确定Redgate是否仍在混淆它,但原作者使用无法打印的字符对其进行了混淆

但是Java也存在同样的问题,所以选择您的位置。哦,一个真正坚定的黑客会破解任何平台上的任何应用程序,所以选择一个平台来实现它的功能,这是针对你的问题和你的技能设置的


使用工具来提高你的安全性,提高你的门槛

IL的一个优点是,它完全限定了所有类型的全名。因此,当您在(比如)Reflector中查看模糊代码时,您可能会在同一个类中有十几个具有相同名称的变量,但由于它们在IL中是完全限定的,所以运行时对它们没有问题。

IL的一个优点是,它通过它们的全名完全限定所有类型。因此,当您在(比如)Reflector中查看模糊代码时,同一类中可能有十几个具有相同名称的变量,但由于它们在IL中是完全限定的,因此运行时对它们没有问题。

读取.Net程序集非常容易。您可以自己尝试:


有一些混淆器可以使这项工作更加困难。使用Mono(开源的.Net实现),也可以将.Net代码编译成可执行文件,taht应该会使反汇编变得更加困难。

阅读.Net程序集非常容易。您可以自己尝试: