7

我读过很多关于反编译的帖子(虽然没有经验),但不明白为什么他们都普遍提到反编译 C# 比 C++ 可执行文件更容易。谁能解释其中的区别?

4

2 回答 2

12

C# 编译成CIL,而不是像 C++ 编译器通常那样直接编译成本机代码。

它生成一个.NET 程序集,其中包含比 C++ 可执行文件更多的元数据(通过嵌入式清单) - 这是关于程序集中包含的类型、它引用的内容等的元数据,这使得反编译比“正常”可执行文件。

正如评论中所指出的,CIL 本身是一种比汇编更高级别的语言,并且是一种面向对象的语言,因此更容易正确理解和反编译。

于 2013-08-08T10:09:52.817 回答
0

很简单。C# 代码具有恢复源代码的必要信息,但 C/C++ 没有。

于 2013-08-13T23:00:31.473 回答