Вопрос

I have read many posts about decompiling (though no experience) but did not understand why all of them generally mentioned that it is easier to decompile C# than C++ executable. Could anyone explain the difference?

Это было полезно?

Решение

C# compiles into CIL, not directly into a native code like a C++ compiler would normally do.

It produces a .NET assembly, which contains much more meta data than a C++ executable does (via the embedded manifest) - this is metadata about the types contained in the assembly, what it references and more, making it much easier to decompile than a "normal" executable.

As noted in the comments, CIL in and of itself is a higher level language than assembly and is an object oriented language, making it easier to understand and decompile correctly.

Другие советы

It's simply. The C#-code has necessary information for restore source code, but C/C++ hasn't it.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top