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