Логический элемент


Download 384.49 Kb.
bet69/110
Sana18.06.2023
Hajmi384.49 Kb.
#1597764
1   ...   65   66   67   68   69   70   71   72   ...   110
Bog'liq
Answers

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


3.4. СИСТЕМИ ЗАХИСТУ ВІД КОПІЮВАННЯ. ПРИНЦИПИ ПОБУДОВИ, ВИМОГИ ТА ЕЛЕМЕНТИ СИСТЕМ. ЗАСОБИ ЗАХИСТУ НОСІЇВ ІНФОРМАЦІЇ. ЗАСОБИ ЗАХИСТУ ВІД ЗАСТОСУВАННЯ ПРОГРАМ-ВІДЛАГОДНИКІВ ТА ДЕЗАСЕМБЛЮВАННЯ. КОНВЕЄР КОМАНД. ПЕРЕРИВАННЯ. РЕГІСТР ПРАПОРІВ. ПЕРЕТВОРЕННЯ ТА ЗАМІНА КОМАНД.
Система защиты от копирования или система защиты авторских прав — комплекс программных или программно-аппаратных средств, обеспечивающих затруднение или запрещение нелегального распространения, использования и/или изменения программных продуктов.
Требования:
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



Download 384.49 Kb.

Do'stlaringiz bilan baham:
1   ...   65   66   67   68   69   70   71   72   ...   110




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling