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

Можно ли исследовать систему на Java без исходного кода?

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

Ответ

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

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

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

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

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

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

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