Здравствуйте, Abyx, Вы писали:
A>да, бинарник можно восстановить вплоть до осмысленных названий функций и переменных.
Восстановить можно имена классов исключений если они имеют виртуальный деструктор, они сохраняются в замангленном виде для RTTI. Имена функций и переменных уникального (не библиотечного) кода не восстанавливаются в принципе. Потому что в бинарнике их тупо нет ни в каком виде. Их можно самому заново придумать, но никак не восстановить.
Такие заново придуманные имена функций не могут быть основанием для экспертного заключения, ибо иначе можно все что угодно написать.
A>если в бинарнике есть названия функций и переменных (строки), то можно восстановить их как они были в исходнике.
Строки да, но названий функций и переменных там нет если их специально туда не включали.
A>два куска кода можно сравнить, и даже если имена переменных не совпадают, можно сказать что A>int add(int a, int b) { return a+b; } A>имеет ту же функциональность что и A>int sub1(int arg1, int arg2) { return arg1+arg2; }
Что-то я сомневаюсь что этот експерт делал такой весьма нетривиальный анализ. Для этого нужна действительно высокая квалификация, иначе можно взять пару библиотечных функций и каждую вторую программу признать малварей на том основании что оно местами похоже.