ВИРТУАЛИЗАЦИЯ ДЛЯ ДИВЕРСИФИЦИРОВАННОЙ ЗАЩИТЫ ОТ НЕСАНКЦИОНИРОВАННОГО ВМЕШАТЕЛЬСТВА

1. Компьютерно-реализуемый способ, содержащий этапы, на которых:
предоставляют архитектуру (200) набора команд, которая содержит признаки для формирования диверсифицированных копий программы;
используют архитектуру набора для формирования диверсифицированных копий программы (150); и
предоставляют виртуальную машину (170) для выполнения одной из диверсифицированных копий программы.
2. Способ по п.1, в котором предоставление виртуальной машины содержит этап, на котором формируют динамически подключаемую библиотеку (172) виртуальной машины.
3. Способ по п.1, в котором признаки для формирования диверсифицированных копий программы содержат семантику (510) команд, которая предусматривает условное выполнение (512), используя предикативные регистры (513).
4. Способ по п.1, в котором признаки для формирования диверсифицированных копий программы содержат семантику (510) команд с ограниченным набором (514) команд, причем, необязательно, ограниченный набор команд не включает в себя команду (515) "пустая операция", причем, необязательно, ограниченный набор команд имеет ограниченное представление операндов (516), и причем, необязательно, ограниченный набора команд ограничивает, по меньшей мере, некоторые условные ветвления (517).
5. Способ по п.1, в котором признаки для формирования диверсифицированных копий программы, содержат кодирование (520) команд для переменных размеров (522) команд, причем, необязательно, признаки для формирования диверсифицированных копий программы содержат кодирование команд для назначения кода операций с помощью унарного кодирования, чтобы представлять физическое совмещение (524), причем, необязательно, признаки для формирования диверсифицированных копий программы содержат кодирование команд для того, чтобы представить переменную битовую комбинацию для кода операции для команды (527), причем, необязательно, признаки для формирования диверсифицированных копий программы содержат кодирование команд для того, чтобы назначать битовую комбинацию на основе предшествующего выполнения кода (528) операции, и причем, необязательно, признаки для формирования диверсифицированных копий программы содержат кодирование команд для того, чтобы перераспределить структуру (529) декодирования, чтобы таким образом разрешить переход к точке в программе по двум или больше путям выполнения, при этом назначенный смысл битовой комбинации в точке зависит от пути выполнения до точки.
6. Способ по п.1, в котором признаки для формирования диверсифицированных копий программы содержат один или более фильтров (542) цикла выборки, причем, необязательно, один или более фильтров (542) цикла выборки содержат фильтр, который добавляет информацию к запрошенному биту или битам кода (543), причем, необязательно, информация содержит случайное значение (544), причем, необязательно, информация содержит значение программного счетчика (545) или информацию, по меньшей мере, частично на основе значения программного счетчика.
7. Способ по п.1, в котором признаки для формирования диверсифицированных копий программы содержат, по меньшей мере, одну структуру, выбранную из группы (550), состоящей из расходящихся деревьев, связных списков и хэш-таблиц, чтобы представлять программу.
8. Компьютерно-реализуемый способ, содержащий этапы, на которых:
предоставляют код, который предназначается для виртуальной машины (110); и
формируют диверсифицированную виртуальную машину посредством комбинирования фрагментов кода из различных местоположений и некоторого автоформируемого кода для компоновки представления управляемого кода для реализации виртуальной машины или вывести DLL (170) диверсифицированной виртуальной машины.
9. Способ повышения уровня защиты (105) программного обеспечения, при этом способ содержит этапы, на которых:
предоставляют базовый уровень виртуализации, который содержит набор команд; и
предоставляют один или более дополнительных уровней виртуализации, при этом, по меньшей мере, один из одного или более дополнительных уровней виртуализации виртуализирует набор команд базового уровня виртуализации.
10. Способ по п.9, дополнительно содержащий этапы, на которых:
формируют индивидуализированные копии программного кода (150); и
предоставляют виртуальную машину (170) для выполнения индивидуализированной копии программного кода, при этом виртуальная машина может изменять работу программы в среде выполнения.