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