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

Как проверяют, что программа собрана из переданного кода?

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

Ответ

Пересобирают переданный код и сравнивают результат со спорной программой — и по .NET такое сравнение строже, чем в большинстве языков. Причина в том, что сборка здесь по умолчанию детерминирована: при одинаковых входных данных и настройках результат совпадает вплоть до байта.

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

С оговоркой: у старых проектов на .NET Framework детерминированности может не быть, а пути к исходным текстам попадают в файл и в современной сборке — эксперт задаёт нужные настройки заранее. Если прогоны расходятся, сравнивают не байты, а содержание: состав типов и методов, строки, внешние связи. Совпадение — сильный довод, расхождение само по себе обратного не доказывает и требует проверенного объяснения; оценивает вывод суд.

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

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

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

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