2012-05-26 3 views
2

Я написал простую программу Hello word с masm32. Но потом, когда я пытаюсь разобрать его с помощью IDA, я получаю гораздо больший объем (я его не буду писать, потому что это займет много места). И я не понимаю, почему все по-другому. Как запустить дизассемблированный код?Чтение разобранного кода

+0

Возможно, я ошибаюсь, но больший результат должен быть следствием того факта, что разборка содержит больше информации, такой как адрес каждой инструкции. –

ответ

2

Это нормально. Компиляция - это «потерянный» процесс, а это означает, что если вы скомпилируете код и затем декомпилируете его, вам не гарантируется получение того же самого, что вы изначально вложили. То же самое относится к ассемблеру. Когда вы собираете и связываете код, это односторонний процесс.

Именно поэтому программисты сохраняют исходный код, а не просто декомпилируют свои двоичные файлы, когда хотят исправить ошибки.

+0

Вы не собираете сборку, вы ее собираете и связываете. Учтите, что для каждого кода операции существует соответствующее двоичное значение, поэтому у вас нет оптимизации, типичной для скомпилированных языков (на уровне a.k.a.). –

+0

Вы видите, что у меня есть задача демонтировать пример .exe, а затем запустить запустите его с кодом вывода – LTnewbie

+0

Не означает, что произошла какая-либо оптимизация. Я обновил ответ, чтобы обратиться к терминологической педантике. –

 Смежные вопросы

  • Нет связанных вопросов^_^