Теория и практика защиты программ


         

Для численной оценки данного метода


Для численной оценки данного метода введем следующие значения. Предположим, что i в среднем равно N/2. Пусть w0 - время выполнения цикла алгоритма (установка текущего значения, дешифрование, проверка правильности дешифрования) в штатном режиме функционирования (без отладки); w1

- время выполнения того же цикла в режиме отладки; z —предельное время задержки при штатной работе защищенной программы. Тогда N=z/w0. Затраты времени злоумышленника исчисляются средней величиной Тзл=Nw1/2. Для приблизительных расчетов w1/w0»10000.

В ряде способов защиты от отладки идентификация отладчика и направление его по ложному пути происходят одновременно, в одном и том же фрагменте кода (так, при определении стека в области кода защищаемой программы при работе отладчика, использующего тот же стек, код программы будет разрушен). В других случаях ложный путь в работе программы формируется искусственно. Часто для этого используют динамическое преобразование программы (шифрование) во время ее исполнения.

Способ динамического преобразования заключается в следующем: первоначально в оперативную память загружается фрагмент кода, содержание части команд которого не соответствует тем командам, которые данный фрагмент в действительности выполняет; затем этот фрагмент по некоторому закону преобразуется, превращаясь в исполняемые команды, которые затем и выполняются.

Преобразование кода программы во время ее выполнения может преследовать три основные цели:

·     противодействие файловому дизассемблированию программы;

·     противодействие работе отладчику;

·     противодействие считыванию кода программы в файл из оперативной памяти.

Перечислим основные способы организации преобразования кода программы [ПАС]:

1.       Замещение фрагмента кода функцией от находящейся на данном месте команды и некоторых данных.

2.       Определение стека в области кода и перемещение фрагментов кода с использованием стековых команд.


Содержание  Назад  Вперед