Ответ эксперта

Собранный файл не совпал с рабочим — значит, передали не тот код?

Вопрос по направлению: Экспертиза исходного кода на C++

Ответ

Само по себе — нет. Один и тот же текст, собранный другой версией GCC, Clang или компилятора Visual Studio, даёт разный машинный код. То же делают настройки оптимизации, разрядность, целевая система, версия компоновщика и порядок подачи файлов.

Многие сборки записывают внутрь дату, имя машины и пути к исходникам; путь попадает в отладочные данные и сообщения об ошибках, а не в сам код, но файл всё равно отличается. Добавьте языковые настройки системы и подпись, которую ставят после сборки. Побайтовое совпадение достижимо только при специальной подготовке проекта — этим занимается направление воспроизводимых сборок.

Поэтому задачу ставят иначе: не «совпадают ли файлы», а «получается ли из переданного та же по существу программа», и сравнивают по признакам, устойчивым к настройкам.

Актуализировано
Обсудить задачу

Нужна экспертиза или консультация?

Опишите ситуацию и цель обращения. Мы определим нужный вид исследования, подберём профильного эксперта и поможем подготовить вопросы и материалы.

  • Подберём специалиста
  • Поможем с вопросами
  • Оценим срок и стоимость
Оценить материалы или позвоните 8 (800) 333-24-09 Бесплатный звонок по России