Claims (1)
1. Способ определения принадлежности файлов к коллекциям известных файлов на основе сравнения файлов с помощью шаблонов функциональности, содержащий этапы, на которых:1. A method for determining the ownership of files in collections of known files based on file comparisons using functionality templates, comprising the steps of:
(а) формируют шаблоны функциональности на основе информации об исполняемом файле;(a) form patterns of functionality based on information about the executable file;
(б) выделяют шумовую информацию из шаблонов функциональности исполняемого файла;(b) extract noise information from the functionality templates of the executable file;
(в) приводят блоки шаблонов функциональности исполняемого файла к нормализованному виду для последующего сравнения;(c) bring the blocks of the templates of the functionality of the executable file to a normalized form for subsequent comparison;
(г) сравнивают нормализованные блоки шаблонов функциональности исполняемого файла с блоками шаблонов функциональности известных файлов и по результатам сравнения принимают решение о принадлежности нормализованного блока шаблонов функциональности к одному из шаблонов функциональности известных файлов.(d) comparing the normalized blocks of the templates of the functionality of the executable file with the blocks of the templates of the functionality of known files and based on the results of the comparison decide on whether the normalized block of templates of the functionality belongs to one of the templates of the known files functionality.
2. Способ по п.1, в котором информация об исполняемом файле может быть собрана посредством таких инструментов сбора информации, как2. The method according to claim 1, in which information about the executable file can be collected by means of information collection tools such as
модуль, эмулирующий исполнение программы;module emulating program execution;
модуль виртуализации программ;software virtualization module;
модуль контроля приложений;application control module;
модуль, который дизассемблирует программу и позволяет облегчить дальнейшее выстраивание между определенными функциями связей.a module that disassembles the program and allows you to facilitate further alignment between certain communication functions.
4. Способ по п.1, в котором формирование шаблонов функциональности исполняемого файла осуществляется в два этапа: динамический и статический.4. The method according to claim 1, in which the formation of patterns of functionality of the executable file is carried out in two stages: dynamic and static.
5. Способ по п.4, в котором динамический этап подразумевает сбор информации об исполняемом файле при помощи инструментов сбора информации; и5. The method according to claim 4, in which the dynamic step involves collecting information about the executable file using information collection tools; and
результатом работы динамического этапа при формировании шаблонов функциональности исполняемого файла являются дамп памяти и журнал событий.the result of the dynamic stage when forming patterns of functionality of the executable file are a memory dump and an event log.
6. Способ по п.4, в котором статический этап подразумевает непосредственную трассировку дампа памяти и формирование шаблонов функциональности исполняемого файла.6. The method according to claim 4, in which the static step involves the direct tracing of a memory dump and the formation of functionality templates for the executable file.
7. Способ по п.1, в котором шаблоны функциональности исполняемого файла бывают двух типов:7. The method according to claim 1, in which the functionality templates of the executable file are of two types:
шаблон функциональности, который основан на последовательности блоков; иa functionality template that is based on a sequence of blocks; and
шаблон функциональности, который основан на последовательности ребер.A functionality template that is based on a sequence of edges.
8. Способ по п.7, в котором блоками называются совокупности элементов, такие как API-функции, ссылки на строки кода и ссылки на другие логические блоки.8. The method according to claim 7, in which blocks are called sets of elements, such as API functions, links to lines of code and links to other logical blocks.
9. Способ по п.7, в котором ребрами называются участки между вызовами одного блока другим.9. The method according to claim 7, in which edges are called sections between calls from one block to another.
10. Способ по п.1, в котором выделяемая шумовая информация включает в себя базовые библиотеки компилятора и статически слинкованные функции стандартных библиотек.10. The method according to claim 1, in which the allocated noise information includes basic compiler libraries and statically linked functions of standard libraries.
11. Способ по п.1, в котором сравнение шаблонов функциональности исполняемого файла с шаблонами из коллекций известных файлов осуществляется по различным для каждого типа шаблонов функциональности математическим алгоритмам, таким как11. The method according to claim 1, in which the comparison of the functionality templates of the executable file with the templates from the collections of known files is carried out according to different mathematical algorithms for each type of functionality template, such as
расстояние Хемминга;Hamming distance;
расстояние Левенштейна;Levenshtein distance;
алгоритм вычисления весов;algorithm for calculating weights;
алгоритм выделения характеристической информации.algorithm for extracting characteristic information.
12. Система определения принадлежности файлов к коллекциям известных файлов на основе сравнения файлов с помощью шаблонов функциональности, содержащая:12. A system for determining file ownership of collections of known files based on file comparison using functionality templates, comprising:
средство эмуляции, которое осуществляет сбор информации об исполняемом файле;emulation tool that collects information about the executable file;
средство создания шаблонов функциональности исполняемого файла, которое на основе информации, собранной средством эмуляции, формирует блоки и составляет из них шаблоны функциональности исполняемого файла;means for creating functionality templates for the executable file, which, on the basis of the information collected by the emulation tool, forms blocks and makes up functionality templates for the executable file from them;
средство обработки шаблонов функциональности исполняемых файлов, которое выделяет из шаблонов функциональности шумовую информацию и приводит блоки шаблонов функциональности к нормализованному виду;means for processing the functionality templates of executable files, which extracts noise information from the functionality templates and brings the blocks of functionality templates to a normalized form;
средство хранения коллекций шаблонов функциональности известных файлов;means for storing collections of functionality templates of known files;
средство сравнения шаблонов функциональности исполняемых файлов, которое осуществляет сравнение нормализованных блоков шаблонов функциональности, полученных от средства обработки шаблонов функциональности, с шаблонами функциональности известных файлов из упомянутого средства хранения коллекции в соответствии с классификацией шаблонов функциональности исполняемых файлов.means for comparing functionality templates of executable files, which compares normalized blocks of functionality templates received from means for processing functionality templates with functionality templates of known files from said storage medium of a collection in accordance with the classification of functionality templates for executable files.
13. Система по п.12, в которой средство эмуляции включает в себя такие инструменты сбора информации, как13. The system of claim 12, wherein the emulation tool includes information collection tools such as
модуль, эмулирующий исполнение программы;module emulating program execution;
модуль виртуализации программ;software virtualization module;
модуль контроля приложений;application control module;
модуль, который дизассемблирует программу и позволяет облегчить дальнейшее выстраивание между определенными функциями связей.a module that disassembles the program and allows you to facilitate further alignment between certain communication functions.
14. Машиночитаемый носитель определения принадлежности файлов к коллекциям известных файлов на основе сравнения файлов с помощью шаблонов функциональности, на котором сохранена компьютерная программа, при исполнении которой на компьютере выполняются следующие этапы:14. A machine-readable medium for determining whether a file belongs to collections of known files based on file comparisons using functionality templates on which a computer program is stored, when executed on a computer, the following steps are performed:
(а) формируют шаблоны функциональности на основе информации об исполняемом файле;(a) form patterns of functionality based on information about the executable file;
(б) выделяют шумовую информацию из шаблонов функциональности исполняемого файла;(b) extract noise information from the functionality templates of the executable file;
(в) приводят блоки шаблонов функциональности исполняемого файла к нормализованному виду для последующего сравнения;(c) bring the blocks of the templates of the functionality of the executable file to a normalized form for subsequent comparison;
(г) сравнивают нормализованные блоки шаблонов функциональности исполняемого файла с блоками шаблонов функциональности известных файлов и по результатам сравнения принимают решение о принадлежности нормализованного блока шаблонов функциональности к одному из шаблонов функциональности известных файлов.
(d) comparing the normalized blocks of the templates of the functionality of the executable file with the blocks of the templates of the functionality of known files and based on the results of the comparison decide on whether the normalized block of templates of the functionality belongs to one of the templates of the known files functionality.