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

Можно ли исследовать программу на Python, если переданы только скомпилированные файлы?

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

Ответ

Зависит от того, как именно проект упаковали. Если внутри лежат файлы кеша байт-кода — переработанного представления программы, которое интерпретатор — программа, которая исполняет Python, создаёт сам, чтобы не разбирать исходник при каждом запуске, — их можно разобрать и во многом восстановить логику; заодно из служебной метки видно, какой версией интерпретатора они созданы. Если приложение упаковано вместе с интерпретатором — например, собрано PyInstaller, — обычно удаётся извлечь тот же байт-код. Если же проект переведён в машинный код через Cython или Nuitka, восстановление исходного текста в прежнем смысле невозможно, и исследование ограничивается наблюдаемым поведением и структурой.

Ограничения везде те же. Комментарии автора в кеш байт-кода не попадают, а средства восстановления заметно отстают от новых версий языка: для свежего интерпретатора подходящего инструмента может не оказаться вовсе, и это ограничение, а не вопрос точности. Сам восстановленный текст — это реконструкция, автор писал не так; в заключении это указывают.

Если исходный код существует, но сторона его не передала, эксперт отмечает это как ограничение исследования, а вопрос об истребовании материалов решает суд или лицо, назначившее экспертизу.

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

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

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

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