Цитата(Xenia @ May 20 2015, 14:54)

Если это тест (в том числе и программные листинги), то есть такие программы "лексического анализа", которые плагиат выявляют

. Но если это прошивка МК в кодах процессора, то тут надежды на получение процента сходства, имеющего реальный смысл, практически нет.
Дело в том, что почти любая переменная, появившаяся или исчезнувшая в программе, может приводить к сдвигу адресов остальных объектов в памяти, что, в свою очередь, изменит адреса, которые компилятор загружает в (адресные) регистры при обращении к памяти. Из-за этого больших участков совпадающего бинарного кода уже не найдешь, а малые участки (между соседними обращениями к памяти) обычно настолько типичны, что не представляют собой индивидуального признака. Другими словами, критерий сходства, полученный на коротких отрезках бинарного кода, в гораздо большей степени отражает тип используемого компилятора, нежели то, что делает программа.

. . . .
Это именно бинарник, а не листинг.
Я в смысле, что, например, вызов сишной ф-ии имеет типовую сигнатуру (по крайней мере - кол-во параметров), и наличие таких сигнатур - уже некий "отпечаток" на бинарном коде, соответствующий исходному тексту. Влияние оптимизации, опций компилятора, включения inline - это все понятно.
Но. Все исходники и бинарники - мои родные. Просто их достаточно много, и надо найти "максимально" похожий в имеющемся наборе (вроде библиотеки).
А если будет похожа хотябы основная часть - то скорее всего опиции компилятора теже, и отличие только в тексте исходника (добавелно или удалено).
Думаю, в моем случае нужен гибрид дизассемблера + утилита подобная WinDiff

Цитата(aaarrr @ May 20 2015, 14:23)

Можно оценить сходство, скормив файлы любому компрессору.
пардон, под компрессором я понял архиватор. Типа свертка ?
Цитата(Dr.Alex @ May 20 2015, 15:03)

Не вижу никаких проблем.
Сделайте циклическую корреляцию этих двух файлов, затем посчитайте мощность полученной корреляционной функции.
Возможные сдвиги блоков (сползание адресов) на результат почти не повлияют.
За единицу примите результат для двух одинаковых файлов.
Думаю, вполне адекватная мера будет.
Ok - спасибо. Ближние переходы обычно относительные. Даже если будут сдвиги - код останется темже.