C#与C++的安全性

C# vs C++ security

本文关键字:安全性 C++      更新时间:2023-10-16

我正在和一个懂C#的朋友一起写一个应用程序。我想用最难反编译的代码来编译它。C#和C++之间的安全性区别是什么?(就在编译的可执行文件中查看代码而言)

很简短,解释起来很简单,假设版本构建没有调试信息:

C/C++:你会得到汇编代码,仅此而已。基于反编译的知识,这可能很容易理解,也可能根本不可能。这里并没有一般的答案,因为这也取决于代码本身的复杂性(即"它实际上在做什么?")。

C#:对于所有.NET语言来说,反编译要容易得多,因为生成的二进制文件基本上只包含即时语言代码,您可以将其反编译为可读代码。这不一定会产生与最初相同的代码(变量名可能会丢失,没有注释,优化可能会模糊一些代码),但最终会更容易理解和修改。

有一些代码混淆器可以让阅读反编译的.NET代码变得更难理解,但总的来说,你应该假设总有人能够理解和反向工程你的代码,即使你的代码只是一个黑匣子。