Декомпилировать C # против переполнения стека

Я читал много постов о декомпиляции (хотя и без опыта), но не понимал, почему все они вообще упоминали, что декомпилировать C # легче, чем исполняемый C ++. Кто-нибудь может объяснить разницу?

8

Решение

C # компилируется в CIL, не напрямую в нативный код, как обычно делает компилятор C ++.

Это производит .Чистая сборка, который содержит гораздо больше метаданных, чем исполняемый файл C ++ (через встроенный манифест) — это метаданные о типах, содержащихся в сборке, о том, на что она ссылается и т. д., что значительно упрощает декомпиляцию по сравнению с «обычным» исполняемым файлом.

Как отмечено в комментариях, CIL сам по себе является языком более высокого уровня, чем ассемблер, и является объектно-ориентированным языком, что облегчает его понимание и правильную декомпиляцию.

10

Другие решения

Это просто
C # -код имеет необходимую информацию для восстановления исходного кода, но C / C ++ его не имеет.

0

По вопросам рекламы [email protected]