这个 C++ 项目可以用 .NET Reflector 之类的工具反编译吗?

1 .net c++ managed-code native-code .net-reflector

我使用 Microsoft Visual Studio 2012,我想用本机 C++ 编写一个应用程序。我不想使用托管代码 (.NET) 的原因是因为我不希望我的应用程序使用 .NET Reflector 之类的工具反编译回源代码,但如果我仍然可以使用,那就太好了我的应用程序中的 UI(CLR Windows 窗体)。

但是当我将 UI(CLR Windows 窗体)添加到我的 Win32 项目时,会弹出此消息:

信息

这是否意味着从现在开始我的所有项目都不会被编译为本机代码,并且有可能使用 .NET Reflector 之类的工具反编译整个应用程序?

或者它将是“混合”(本机代码 + 托管代码)项目蚂蚁将无法使用诸如 .NET 反射器之类的工具反编译整个应用程序,只有其中负责 UI 的部分?

PS 是的,我知道任何应用程序都可以反编译 (!!!),但我问的是基于 .NET 的应用程序的反编译工具。使用 .NET Reflector,您可以从 .NET 应用程序“取回原始源代码”。所以我的问题是,是否有可能从这个应用程序“取回原始源代码”,或者它会以某种方式“混合”代码(托管 + 本机),并且不可能将它反编译回原始代码像.NET Reflector这样的工具的源代码?

Emi*_*lia 5

如果“反编译”意味着“取回原始源代码”,则在可执行文件中没有任何符号表的情况下,这是不可能的。

如果“反编译”的意思是“得到一个用户可修改的代码,该代码在语义上等同于原始代码,并且可以编译回可执行程序”,那总是可能的(即使直接修改机器代码本身:有人理解它! )。这对于广大观众来说是如何理解的,那又是另外一回事了。

营销的一般规律说:“唯一不能复制的就是永远卖不出去的!” 这是一个与软件的物理性质有关的问题。没有解决方法(除了为另一个宇宙工作)