СИСТЕМА И СПОСОБ СОХРАНЕНИЯ СОСТОЯНИЯ ЭМУЛЯТОРА И ЕГО ПОСЛЕДУЮЩЕГО ВОССТАНОВЛЕНИЯ

1. Способ для эмуляции файлов, содержащий этапы на которых:
а) получают файл на эмуляцию;
б) проверяют, выполняется ли эмуляция в первый раз;
в) определяют образ состояния эмулятора, который загружается в эмулятор для последующей эмуляции файла;
г) производят эмуляцию файла;
д) создают образы состояния эмулятора;
е) проверяют некорректное завершение эмуляции файла;
ж) выбирают необходимый образ для продолжения эмуляции в случае некорректного завершения эмуляции файла;
з) загружают выбранный образ для продолжения эмуляции файла.
2. Способ по п.1, в котором получают файл на эмуляцию по крайней мере в одном из следующих случаев:
- файл является неизвестным и требуется провести его эмуляцию для определения его возможной вредоносности;
- эмуляция необходима для определения всех возможных кодов ошибок;
- эмуляция необходима для исследования функционала приложения, когда необходимо определить, какие используются системные вызовы, список необходимых сторонних библиотек.
3. Способ по п.1, в котором необходимым условием создания новых образов состояния эмулятора является, по меньшей мере, одно из следующих условий:
- ветвление в коде;
- применение антиэмуляционного приема;
- эмуляция определенного количества инструкций;
- периодическое создание образов через заданные промежутки времени.
4. Способ по п.1, в котором некорректное завершение эмуляции файла может быть, по меньшей мере, одним из:
- слишком быстрое завершение эмулируемого процесса;
- отсутствие необходимых библиотек;
- необработанное исключение.
5. Способ по п.1, в котором образы состояния эмулятора создаются в виде древовидной структуры, при этом переходы между образами строятся на основании условий созданий новых образов состояния эмулятора.
6. Способ по п.1, в котором загружают выбранный образ для продолжения эмуляции файла с изменениям состояния эмулятора.
7. Способ по п.6, в котором изменением состояния эмулятора может быть, по меньшей мере, одно из:
- переход в другую ветку кода при условном переходе;
- изменение статуса описателей ресурсов;
- откат сделанных ранее изменений;
- изменение значения выполненной функции.
8. Система для эмуляции файлов, содержащая средства:
а) эмулятор, связанный со средство загрузки образов и средством создания образов, при этом эмулятор предназначен для получения файла, последующей эмуляции файла и проверки некорректного завершения эмуляции файла;
б) средство загрузки образов, связанное с базой данных образов, при этом средство загрузки образов предназначено для определения и загрузки образа состояния эмулятора, который загружается в эмулятор для последующей эмуляции файла, в том числе и при некорректном завершении эмуляции файла;
в) средство создания образов, связанное с базой данных образов, при этом средство создания образов предназначено для создания образов состояния эмулятора;
г) база данных образов, предназначенная для хранения образов состояния эмулятора.
9. Система по п.8, в которой эмулятор получает файл на эмуляцию по крайней мере в одном из следующих случаев:
- файл является неизвестным и требуется провести его эмуляцию для определения его возможной вредоносности;
- эмуляция необходима для определения всех возможных кодов ошибок;
- эмуляция необходима для исследования функционала приложения, когда необходимо определить, какие используются системные вызовы, список необходимых сторонних библиотек.
10. Система по п.8, в которой необходимыми условиями создания новых образов состояния эмулятора является по меньшей мере одно из следующих условий:
- ветвление в коде;
- применение антиэмуляционного приема;
- эмуляция определенного количества инструкций;
- периодическое создание образов через заданные промежутки времени.
11. Система по п.8, в которой некорректное завершение эмуляции файла может быть по меньшей мере одним из:
- слишком быстрое завершение эмулируемого процесса;
- отсутствие необходимых библиотек;
- необработанное исключение.
12. Система по п.8, в которой образы состояния эмулятора создаются в виде древовидной структуры, при этом переходы между образами строятся на основании условий созданий новых образов состояния эмулятора.
13. Система по п.8, в которой загружают выбранный образ для продолжения эмуляции файла с изменениям состояния эмулятора.
14. Система по п.13, в которой изменением состояния эмулятора может быть по меньшей мере одно из:
- переход в другую ветку кода при условном переходе;
- изменение статуса описателей ресурсов;
- откат сделанных ранее изменений;
- изменение значения выполненной функции.