我正在和一个知道 C# 的朋友一起编写一个应用程序。我想用最难反编译的代码来编码。C# 和 C++ 之间的安全差异是什么?(就在编译的可执行文件中查看代码而言)
问问题
1548 次
1 回答
4
假设发布版本没有调试信息,非常简短且易于解释:
C/C++:
你会得到汇编代码,就是这样。根据反编译的知识,这可能很容易理解或根本不可能。这里没有一般的答案,因为这也取决于代码本身的复杂性(即“它实际上在做什么?”)。
C#:
至于所有 .NET 语言,反编译要容易得多,因为生成的二进制文件基本上只包含可以反编译成可读代码的直接语言代码。这不一定会导致您首先获得相同的代码(变量名可能会丢失,没有注释和优化可能会使某些代码变得模糊),但最终它更容易理解和修改。
有一些代码混淆器使阅读反编译的 .NET 代码更难理解,但通常你应该始终假设总有人能够理解和逆向工程你的代码,即使你的代码只是一个黑匣子。
于 2013-07-23T11:46:16.703 回答