反编译C#与C ++

时间:2013-08-08 10:06:50

标签: c# c++ decompiling

我已阅读很多关于反编译的帖子(虽然没有经验),但不明白为什么所有人都普遍提到反编译C#比C ++可执行文件更容易。有人可以解释一下这个区别吗?

2 个答案:

答案 0 :(得分:11)

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

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

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

答案 1 :(得分:0)

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