Антонов. Функциональное сравнение исполняемых файлов
Скачать 76.5 Kb.
|
c1,i, с2,i - количество вызовов API функции Ai при выполнении первого и второго файла соответственно. Формулы учитывают количество вызовов (2) и порядок количества вызовов (3). В работе [2] в качестве меры расстояния также предложено использовать угол между векторами, каждый из которых представляет собой количество вызовов функции в пространстве API функций.
где с1,i, с2,i – количество вызовов API функции Ai при выполнении первого и второго файла соответственно. 3) Сравнение API функций с учетом порядка вызовов [2] может быть проведено при помощи расстояния Левенштейна D5. Существенным недостатком этого способа является большая сложность алгоритма O(|F1|*|F2|). 4) Возможно также проводить сравнение n-грамм функций D6 , используя формулу (1), как предложено в работе [3]. Информативность API функций Как уже упоминалось, различные API функции несут разную смысловую нагрузку. Функции должны иметь большой вес, если они хорошо выделяют класс и малый — если они сильно изменяются в пределах класса. В работе [3] предложено в ручную исключать из сравнения малоинформативные функции, однако такой метод трудозатратен. Для улучшения качества сравнения файлов предлагается применять систему взвешивания. Вес API-функции должен рассчитываться исходя из ее информативности. Для расчета информативности API функций воспользуемся энтропийным критерием информативности: , где введена функция |