СПОСОБ, СИСТЕМА И УСТРОЙСТВО ДЛЯ ЗАЩИТЫ ОТ ОБРАТНОГО ИНЖИНИРИНГА И/ИЛИ ВМЕШАТЕЛЬСТВА В ПРОГРАММЫ

1. Способ конфигурирования процессора (12), содержащий этапы, на которых:
принимают битовую строку (B) и программу (P),
конфигурируют процессор (12) так, что процессор (12) исполняет программу (P), когда процессор (12) использует битовую строку (B) в качестве источника по меньшей мере двух машинных команд, одна за другой, при этом процессор (12) конфигурируют не исполнять программу (P), когда процессор (12) не использует битовую строку (B) в качестве источника машинных команд.
2. Способ по п. 1, в котором этап конфигурирования содержит этапы, на которых:
транслируют программу (P) в по меньшей мере две опорные машинные команды, одна за другой,
вычисляют данные трансляции из битовой строки (B) и упомянутых по меньшей мере двух машинных команд, одна за другой, для конфигурирования процессора (12) так, что процессор (12) исполняет программу (P), когда процессор использует битовую строку (B) в качестве источника машинных команд; и
конфигурируют процессор (12) с помощью упомянутых данных трансляции.
3. Способ по п. 2, в котором этап вычисления данных трансляции содержит этапы, на которых:
разделяют битовую строку (B) на последовательные части для использования процессором (12) в качестве соответствующих машинных команд, и
определяют однозначные трансляции для трансляции упомянутых последовательных частей битовой строки в упомянутые по меньшей мере две опорные машинные команды, одна за другой, в соответствующих позициях.
4. Способ по п. 3, в котором данные трансляции транслируют различные подчасти каждой части из упомянутых последовательных частей битовой строки в по меньшей мере одно из кода операции, операнда и результирующего кода опорной машинной команды в соответствующей позиции упомянутых по меньшей мере двух опорных машинных команд, одна за другой.
5. Способ по п. 3, в котором данные трансляции содержат справочные данные для поиска частей битовой строки (B), чтобы получить опорную машинную команду.
6. Способ по п. 3, в котором упомянутые последовательные части битовой строки имеют большую длину, чем длина опорной машинной команды.
7. Способ по п. 3, содержащий этапы, на которых:
определяют значения счетчика команд, соответствующие различным частям битовой строки, при исполнении процессором (12),
объединяют части битовой строки с информацией, полученной из значения счетчика команд, таким образом получая части с устраненной неоднозначностью, и определяют трансляции для трансляции частей с устраненной неоднозначностью в опорные машинные команды.
8. Способ по п. 2, содержащий этапы, на которых:
определяют опорные машинные команды, не имеющие оригинального кода операнда, который транслирует в опорные машинные команды согласно трансляции, определяемой данными трансляции,
выбирают оригинальные коды операндов для упомянутых опорных машинных команд, не имеющих оригинального кода операнда, отличные от оригинальных кодов операндов, которые уже были определены в данных трансляции, и расширяют данные трансляции для конфигурирования процессора (12) так, чтобы сконфигурированный процессор (12) выполнял упомянутые определенные опорные машинные команды, когда процессор использует выбранные оригинальные коды операндов в качестве источника машинных команд.
9. Способ по п. 2 или 8, содержащий этапы, на которых:
делают данные трансляции доступными компилятору для процессора, сконфигурированного с помощью упомянутых данных трансляции,
компилируют дополнительную программу (P΄) с помощью компилятора, при этом упомянутой компиляцией создается программа скомпилированных машинных команд для упомянутого процессора (12);
исполняют программу скомпилированных машинных команд с помощью упомянутого процессора (12).
10. Способ по п. 9, в котором программа (P) представляет собой программу моделирования программируемого процессора для моделирования дополнительного процессора,
при этом программу моделирования программируемого процессора получают посредством того, что
принимают дополнительную битовую строку и дополнительную программу моделирования программируемого процессора;
вычисляют дополнительные данные трансляции дополнительного программируемого процессора, который будет выполнять операции, определяемые дополнительной программой моделирования программируемого процессора, когда дополнительный программируемый процессор использует дополнительную битовую строку в качестве источника машинных команд, при этом дополнительные данные трансляции вычисляются из дополнительной битовой строки и дополнительной программы моделирования программируемого процессора в качестве входных данных.
11. Способ по п. 1, содержащий этапы, на которых принимают исходное приложение A, разделяют исходное приложение A на первую часть A1 и вторую часть A2, используют первую часть A1 в качестве программы (P) и используют объектный код второй части A2 в качестве битовой строки (B).
12. Способ по п. 1, содержащий этапы, на которых принимают исходное приложение A, разделяют исходное приложение A на первую часть A1 и вторую часть A2, используют первую часть A1 в качестве программы (P), объединяют вторую часть A2 с водяным знаком C и используют комбинацию второй части A2 с водяным знаком C в качестве битовой строки (B).
13. Способ по п. 1, в котором процессор представлен как синтезируемое описание аппаратных средств.
14. Способ по п. 1, в котором части битовой строки (B) являются по меньшей мере одним из представления текста, знака и информации, собранной динамически из вычислительной среды.
15. Устройство для конфигурирования процессора (12), содержащее:
приемник для приема битовой строки (B) и программы (P); и
процессор конфигурирования, выполненный с возможностью
трансляции программы (P) в по меньшей мере две опорные машинные команды, одна за другой,
вычисления данных трансляции из битовой строки (B) и упомянутых по меньшей мере двух опорных машинных команд, одна за другой, для конфигурирования процессора (12) так, чтобы сконфигурированный процессор (12) исполнял программу (P), когда процессор (12) использует битовую строку B в качестве источника по меньшей мере двух машинных команд, одна за другой, и чтобы процессор (12) не исполнял программу (P), когда процессор (12) не использует битовую строку (B) в качестве источника машинных команд, и
конфигурирования процессора (12) так, чтобы он выполнял машинные команды в соответствии с упомянутыми данными трансляции.
16. Компьютерный программный продукт, содержащий программу из команд, которые при их исполнении компьютером предписывают компьютеру
принимать битовую строку (B) и программу (P); и
выполнять трансляцию программы (P) в по меньшей мере две опорные машинные команды, одна за другой,
вычислять данные трансляции из битовой строки (B) и упомянутых по меньшей мере двух опорных машинных команд, одна за другой, для конфигурирования процессора (12) так, чтобы процессор (12) исполнял программу (P), когда процессор (12) использует битовую строку (B) в качестве источника машинных команд, и чтобы процессор (12) не исполнял программу (P), когда процессор (12) не использует битовую строку (B) в качестве источника машинных команд;
генерировать конфигурационные данные для конфигурирования процессора (12) в соответствии с упомянутыми данными трансляции.