Вредоносное ПО сегодня является одной из основных угроз безопасности в Интернете, механизмы защиты от обнаружения, такие как морфизм кода, превращают вредоносное ПО во множество вариантов, из-за которых схемы обнаружения на основе подписи работают плохо. Обнаружение вариантов вредоносных программ улучшает методы обнаружения на основе сигнатур. В последние годы исследователи сосредоточились на обнаружении вариантов вредоносных программ с помощью методов машинного обучения, которые превращают проблему обнаружения вариантов вредоносных программ в проблему поиска сходства программ. Когда новая программа достаточно похожа на любую подписанную вредоносную программу в наборе обучающих данных, программа проверяется как вредоносная программа.
Поскольку анализ вредоносных программ включает в себя два вида способов: статический анализ и динамический анализ. Некоторые исследования, такие как (Сантос и соавт. 2011; Чезаре и соавт. 2014; Nataraj соавт. 2011; Чжан и соавт. 2016; Чжан и соавт. 2016; Ян и соавт. 2015; Раман и соавт. 2012), предлагаю использовать статический анализ, который извлекает объекты из двоичных файлов без фактического выполнения программ, таких как коды операций, контроль передачи графической и т. д. для обнаружения вариантов вредоносных программ. Однако, когда варианты вредоносного ПО уже упакованы, это предотвращает дальнейший анализ с помощью инструментов разборки, инструментов синтеза и других инструментов статического анализа.
Современные варианты вредоносных программ всегда оснащены сложными пакерами, такими как ASPack (2017), ASProtect (2017), UPX (2017), VMProtect (2017), ZProtect (2017) и т.д., Которые позволяют вариантам вредоносных программ обходить традиционные и современные системы обнаружения. Эти упаковщики включают два вида упаковщиков: упаковщики шифрования и упаковщики сжатия, которые работают, беря существующее приложение, упаковывая его, а затем оборачивая вокруг него утилиту распаковки. Утилита распаковки работает для распаковки внутреннего исполняемого файла в памяти и передает ему выполнение. Проблема заключается в том, что в упаковщике или коде распаковки нет ничего изначально вредоносного (Treadwell et al. 2009). При игнорировании упаковщиков трудно определить, является ли исполняемый файл вредоносным из-за шифрования или сжатия исполняемого файла, что не позволяет системам обнаружения получать оригинальные функции, особенно для статического анализа.