Three methods are disclosed for protecting software applications from
unauthorized distribution and use (piracy). The first method involves
using values generated by a conventional ESD (Electronic Security Device)
to encrypt and/or decrypt user data (such as a file) that is generated and
used by the application. In a preferred embodiment, the user data is
encrypted (such as during a write to memory) using values returned by the
ESD, and the user data is later decrypted using like values returned by a
software-implemented ESD simulator. The second and third methods involve
the use of special development tools that make the task of analyzing the
application's copy protection code (such as the code used to encrypt
and/or decrypt user data) significantly more difficult. Specifically, the
second method involves using pseudocode to implement some or all of the
application's copy protection functions. The pseudocode for a given
function is generated (preferably in encrypted form) from actual code
using a special development tool, and is then imbedded within the
application together with a corresponding pseudocode interpreter. The
interpreter fetches, decrypts and executes the pseudocode when the
function is called. Because no disassemblers or other development tools
exist for analyzing the pseudocode, the task of analyzing the copy
protection functions becomes significantly more complex. The third method
involves the use of a special obfuscation tool to convert the code for
selected copy-protection functions into unnecessarily long, inefficient
sequences of machine code. In one implementation of the obfuscation tool,
the developer can control the quantity of code that is generated by
specifying one or more control parameters. The three methods can also be
used to protect software license management systems from security attacks.
3 метода показаны для защищая применений средства программирования от nezakonna4a продажа и пользы (пиратство). Первый метод включает использовать значения произведенные обычным ESD (электронным обеспечивающим защиту приспособлением) для того чтобы encrypt and/or decrypt данные по потребителя (such as архив) произведены и использованы применением. В предпочитаемом воплощении, encrypted данные по потребителя (such as во время писание к памяти) использующ значения возвращенные ESD, и данные по потребителя более поздно decrypted использованием как значения возвращенные средств программирования-snabjennym имитатором ESD. Вторые и третьи методы включают пользу специальных инструментов развития делают задачу анализировать Кодего защиты от копирования применения (such as Кодий используемое для того чтобы encrypt and/or decrypt данные по потребителя) significantly more трудная. Специфически, второй метод включает использовать псевдокод для того чтобы снабдить некоторые или всю из функций защиты от копирования применения. Псевдокод для, котор дали функции произведен (предпочтительн в encrypted форме) от фактического Кодего использующ специальный инструмент развития, и после этого врезан в пределах применения together with соответствуя переводчик псевдокода. Переводчик fetches, decrypts и исполняет псевдокод когда функция вызвана. Потому что никакие дизассемблеры или другие инструменты развития не существуют для анализировать псевдокод, задача анализировать функции защиты от копирования становит significantly more комплекс. Третий метод включает пользу специального инструмента obfuscation преобразовать Кодего для выбранных функций экземпляр-predoxraneni4 в ненужно длинние, неработоспособные последовательности машинного кода. В одной вставке инструмента obfuscation, проявитель может контролировать количество Кодего которое произведено путем определять one or more параметры управления. 3 метода можно также использовать для того чтобы защитить системаа организации хозяйства лицензии средства программирования от нападений обеспеченностью.