русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Системы защиты от копирования. Принципы построения, требования и элементы систем. Средства защиты носителей информации. Средства защиты от применения программ-отладчиков и дизассемблирования. Конвейер команд. Прерывания. Регистр флагов. Преобразования и замена команд

Система защиты от копирования или система защиты авторских прав — комплекс программных или программно-аппаратных средств, обеспечивающих затруднение или запрещение нелегального распространения, использования и/или изменения программных продуктов.

Требования:

1) некопируемость дискет автоматическими копировщиками,
2) невозможность применения стандартных отладочных средств при изучении ими логики работы защищенных программ без дополнительных манипуляций с кодом программы или без платы аппаратного отладчика,
3) некорректное дисассемблирование защищенной программы или ее существенно важных фрагментов при применении стандартных пакетов.
4) невозможность трассировки по существенно важным прерываниям при помощи стандартных средств. При атом будет скрыт обмен программы с «внешним миром» — диском, DOS и т. д. 
5) затрудненность изучения структуры распознавания индивидуальных параметров ПЭВМ или технологического анализа применяемых аппаратных средств защиты.

Принципы построения:

1) Модуль проверки недублируемой или оригинальной информации — проверяет наличие некопируемых признаков на дискете или оригинальную для данной ПЭВМ информацию.
1.1) системы с «навесным» проверочным модулем, созданным по технологии файлового;
1.2) системы с внешним проверочным модулем, вынесенным в отдельную программу;
1.3) системы с внутренними функциями проверки.
2) Модуль защиты от просмотра и анализа логики системы.
3) Модуль согласования с защищенными структурами — обеспечивает правильную работу защищенных программ и адекватное восприятие защищенных данных в случае легальных копий.

Программы, защищенные только от дисассемблирования, могут легко трассироваться, и наоборот — программы, защищенные только от трассировки, могут быть дисассемблированы. В следствие этого для противодействия изучению алгоритмов систем защиты необходимо иметь средства, препятствующие как дисассемблированию, так и трассировке. Базисом для построения любого отладчика служат методы покомандного выполнения (флаг TF=1) программы и контрольной точки (INT 3). Для защиты дизассемблирования используется совмещение стекового и кодового сегментов, замена одной последовательности команд на эквивалентную. Для I80386 конвейер команд составляет 16 байт. После очистки (командами JMP, INT, CALL, RET, IRET) конвейер заполняется следующими командами, которые выполняются уже с нового адреса. Но при работе отладчика в режиме трассировки конвейер очищается после каждой команды.

test           proc
mov                                 bx,offset xxx       ; ds=cs
jmp                                  short clr     ;очищаем конвейер
clr:            mov                                 byte ptr [bx],0c3h         ; код команды ret
xxx:mov   ah,9
mov                                 dx,offset msg
int                                    21h
ret
msg          db             'Отладочные средства не используются$'
test                                                   endp

Для противодействия отладчикам использующим прерывания 1(вызывает очистку очереди команд конвейера, загружает очередную команду и выполняет её) и 3 (останавливает работу программы в заданной точке) можно изменить вектора этих прерываний на свою подпрограмму. Т.к. отладчик берёт на себя прерывания 8 (таймер) и 9 (клавиатура), то программа защиты перехватив эти прерывания, может в своём обработчике проверять состояние флага IF(флаг прерывания). Если IF=1, то можно производить действия по предотвращению отладки.  Аналогично с флагом TF.


Команда

Эквивалентная

Команда

Эквивалентная

Команда

Эквивалентная

mov op1,op2       

push op2
pop op1

xchg op1,op2

push op1
push op2
pop op1
pop op2

inc op

add op,1

lds r,dword ptr op

mov r,word ptr op  
mov ds,word ptr op+2

add op1,op2

xchg op2,ax
add op1,ax
xchg op2,ax

dec op

sub op,1

les r,dword ptr op

mov r,word ptr op
mov es,word ptr op+2

and,or,xor, adc,sub,sbb и др.

аналогично add

not op

xor op,0ff(ff)h

jmp dword ptr addr

push addr+2        
push addr
retf

call addr

push m
jmp addr
m:  ...

lodsb

mov al,[si]
inc si

loop loc

dec cx
jne loc

jmp addr

push addr
ret

stosb

mov es:[di],al
inc di

rep movsb

push ax
m:  mov al,[si]
mov es:[di],al
inc si
inc di
loop m
pop ax

repe(repne) cmpsb

push ax
m:  mov al,[si]
cmp al, es:[di]
jne(je) m1
inc si
inc di
loop m
m1: pop ax

shift  op,cnt

push cx
mov cx,cnt
m:  shift op,1
loop m
pop cx


Просмотров: 7122

Вернуться в оглавление:Шпаргалки по компьютеру




Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.