从Visual Studio发布应用程序安全吗?



我提供了一个 WPF 应用程序并将解决方案配置更改为"发布"

我从发布中得到了一个.exe文件。共享安全吗?有人可以访问此exe文件的代码吗?我的意思是没有任何应用程序可以将.exe文件转换为代码吗?

在分享之前,请让我知道如何保护它。

您可以反编译使用 .NET语言(同样适用于Java(。这是因为.NET语言被编译成所谓的通用中间语言,这不是实际的机器代码。因此,您可以轻松地将该文件反编译为代码。根据用于反编译的工具,您很有可能像编译之前一样反编译代码,这意味着您很容易理解程序员的开发人员在代码中编写的内容。

但在许多情况下,你不会真正关心这个。首先,周围没有多少人会真正阅读该代码,或者您是否曾经阅读过一个著名网站的javascript代码,它甚至可以直接由人类阅读?即使周围有些人有兴趣阅读您的代码,大多数人也会努力工作才能在飞行中理解它。这需要一些长期而艰苦的工作,而大多数开发人员不会这样做。你只能使用混淆器使阅读反编译代码变得更加困难,这种在编译过程之前加密你的代码,使得在构建 exe 时很难理解代码。

请考虑以下代码:

var myVariable = "Some Text";
var anotherVariable = myVariable;
DoSomething(anotherVariable);

不言自明的代码,不是吗?现在考虑可以使用DotFuscator生成的以下内容,例如:

var a="Some Text";var b=a;hksdshd(b);

更难理解这段代码的作用,不是吗?基本上,混淆器只是用一些随机字符替换代码中的所有标识符,因此很难猜测它们的预期用途或含义。之后,加密的代码将作为任何其他代码编译到程序集或可执行文件中。当有人真正反编译你的程序时,他们得到的只是那些难以阅读的名称和片段。

话虽如此,很难真正保护您的应用程序不被任何人阅读,在大多数情况下,这不是您应该太关心的。通常,您要保护的是您的数据,例如存储在数据库中的信息。

你也可以看看这个问题,它对混淆工具有一些仔细的研究。

在调试或发布模式下创建.exe文件并不重要 - 所有可执行文件 (.EXE( 都可以反编译为代码。

反编译器是一种计算机程序,它将可执行文件作为输入,并尝试创建执行相同操作的高级可编译源文件。 因此,它与编译器相反,编译器采用源文件并制作可执行文件。反编译器被认为是逆向工程过程中的重要工具。

一旦这种流行的工具被hiew,它就可以将任何语言创建的任何exe分解为其高级代码。

对于使用 .NET 框架创建的二进制文件和 EXE 文件,有几个工具,包括这个工具,它使反编译变得非常容易和可访问。

您可以使用混淆来防止反编译。 有几个工具可用,例如 secureteam.net 和Dotfuscator。

最新更新