Материал: 3350

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

* код длины сектора (0 - 128 байт, 1 - 256 байт, 2 - 512 байт, 3 - 1024 байт) Если при форматировании указать несуществующий номер сектора, т.е. номер

больший максимально допустимого, можно получить уникальный сектор, который невозможно прочитать и записать. При обращении к такому сектору с функцией чтения или записи будет выдан аварийный код завершения. Коды завершения, получаемые программой при работе с подобными секторами, могут быть использованы в качестве ключа при защите, позволяя настроить программу на конкретный магнитный диск.

Второй изменяемый параметр при форматировании дорожки - код длины. В процессе форматирования размер каждого сектора определяется индивидуально. Благодаря этому, существует возможность создать на диске ряд уникальных секторов с разным кодом длины. Для того, чтобы записать данные в выделенные таким образом сектора, необходимо при операции записи/чтения соответственно изменять указатель размера сектора в таблице Базы Диска. База Диска - это таблица, состоящая из 11 байт, которая содержит ряд параметров, необходимых для работы дисководов, включая и определенную информацию о формате дисков. Адрес таблицы Базы Диска находится в векторном пространстве по адресу 120. Смещение байта, ответственного за длину сектора, относительно начала таблицы равно 3. Обычными средствами DOS подобные сектора не читаются, что позволяет спрятать в них необходимые данные.

3.Задание к работе

1.Опишите основные принципы защиты программных продуктов от несанкционированного копирования. Составьте в виде таблицы классификацию таких методик.

2.На одном из языков высокого уровня напишите программу, которая может свободно копироваться на магнитные носители, но при попытке запуска проверяет: на исходном ли носителе она находится и в случае несанкционированной копии выводит соответствующее сообщение.

4.Порядок выполнения работы

Ниже приведен пример программы на языке Си, которая форматирует 38 дорожку таким образом, чтобы второй сектор дорожки имел длину, отличную от стандартного размера, а третий сектор был отформатирован с несуществующим номером. Затем программа осуществляет запись в указанные сектора и распечатку кода завершения операции.

# include <dos.h>

 

 

#include <stdio.h>

 

 

#include <conio.h>

 

 

main(){

 

 

 

union

REGS

 

rl;

struct

SREGS

rg;

unsigned int

 

 

j;

int

 

 

n;

char

a[1024];

// буфер для чтения

char

a1[1024] = «проверка записи и чтения на дорожке»;

int

nsek;

 

 

int

smes;

 

 

char

far

*ukazad;

 

/* таблица дорожка - головка - сектор - размер для каждого сектра на дорожке */ char tab[9][4]={38 , 1 , 1 , 2 , 38 , 1 , 2 , 1 , 38 , 1 , 13 , 2 , 38 , 1 , 4 , 2 , 38 , 1 ,

5 , 2 , 38 , 1 , 6 , 2 , 38 , 1 , 7 , 2 , 38 , 1 , 8 , 2 , 38 , 1 , 9 , 3};

6

system(«dir a:»);

 

smes = peek(0,120);

// таблица Базы Диска

ukazad = MK_FP(0,smes);

 

rl.h.dl = 0;

 

 

rl.h.ah = 0;

 

 

int86x(0x13,&rl,&rl);

 

clrscr();

 

 

rl.h.dl = 0;

 

// устройство а:

rl.h.dh = 1;

 

// номер головки

rl.h.ch = 38;

 

// номер дорожки

rl.h.ah = 5;

 

// функция форматирования

rl.h.al = 1;

/* адрес таблицы секторов дорожки */

rl.x.bx = FP_OFF(&tab[0]);

rg.es = FP_SEG(&tab[0]); /* номер дефектного сектора */

nsek = rl.h.dh*360+rl.h.ch*9-10+2; /* вызов прерывания 13h*/ int86x(0x13,&rl,&rl,&rg); /* печать кода завершения */ gotoxy(10,9);

printf(«завершение =%d номер дефектного сектора=%d»,rl.h.ah,nsek);

//запись в отформатированные сектора for(j=1;j<5;j++){

//писать сектор

rl.h.dl = 0; rl.h.dh = 1; rl.h.ch = 38; rl.h.cl = j; rl.h.ah = 3; rl.h.al = 1;

rl.x.bx = FP_OFF(&a[0]); rg.es=FP_SEG(&a[0]); if (j= =2){

*(ukazad+3) = 1;

gotoxy(1,25); printf(«попытка записи»);

}

int86x(0x13,&rl,&rl,&rg);

gotoxy(30,25);

printf(«j=%d код ошибки=%d»,j,rl.h.ah);

*(ukazad+3) = 2; getch();

}

// попытка чтения отформатированных секторов

/* номер дефектного сектора для absread() вычисляется следующим образом: nsek = rl.h.dh*360+rl.h.ch+9+ndefsek-10;

где ndefsek - порядковый номер дефектного сектора в таблице tab В данном случае ndefsek = 2, результат nsek=694 */ for(j=1;j<5;j++){

// читать сектор rl.h.dl = 0; rl.h.dh = 1; rl.h.ch = 38; rl.h.cl = j;

rl.h.ah = 2; rl.h.al = 1;

rl.x.bx = FP_OFF(&a[0]); rg.es=FP_SEG(&a[0]);

7

if (j= =2) { *(ukazad+3) = 1;

gotoxy(1,25); printf(«попытка чтения»);

}

memset(a,0,100);

int86x(0x13,&rl,&rl,&rg); window(1,20,80,24); clrscr(); a[36]=0; printf(«запись=%s»,a);

window(1,1,80,25); gotoxy(30,25);

printf(«j=%d код ошибки=%d»,j,rl.h.ah);

*(ukazad+3) = 2; getch();

}

printf(«\n программа отработала»); exit(0);

}

Содержание отчета

1.Название работы.

2.Цель работы.

3.Блок-схему алгоритма.

4.Тексты программ.

5.Вопросы для самопроверки

1.Перечислите основные принципы и приемы, используемы при защите программ от несанкционированного копирования?

2.Какие программные и технические средства используются для защиты от несанкционированного копирования?

3.Поясните особенности программной среды при защите от несанкционированного копирования.

8

Лабораторная работа №2

«Резервное копирование и восстановление данных»

Введение

В прошлом при возникновении непредвиденных обстоятельств прибегали к восстановлению данных с обычных резервных магнитных лент. Сегодня, однако, простой сервера локальной сети нарушает обычные деловые процессы: компания может вообще оказаться не в состоянии выполнять свои задачи, если ее сервер NetWare или Windows NT будет недоступен из-за ремонта или восстановления.

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

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

2.Краткие сведения из теории

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

— ошибки пользователей (как обычных, так и администраторов), которые могут по ошибке удалить или перезаписать не тот файл.

По этой причине возникает необходимость регулярного создания резервных копий информации — файлов с документами, баз данных и состояния операционной системы.

Системы семейства Windows Server имеют встроенный инструмент создания резервных копий — утилиту ntbackup. Данная утилита позволяет сохранять резервные копии на самых различных носителях — ленточных накопителях, магнитооптических дисках, жестких дисках (как на локальных дисках данного сервера, так и на сетевых ресурсах, размещенных на других компьютерах сети). В версии системы Windows 2003 реализован механизм т.н. теневых копий Shadow Copy, который заключается в том, что в начале процедуры архивации система делает моментальный «снимок» архивируемых файлов и уже после этого создает резервную копию из этого снимка. Данная технология позволяет архивировать файлы, которые в момент запуска утилиты ntbackup были открыты пользователями.

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

Все операции по созданию резервных копий и восстановлению данных в ОС семейства Windows осуществляются утилитой ntbackup.

Рассмотрим основы резервного копирования файловых ресурсов. Каждый файл, хранящийся на диске компьютера, независимо от типа файловой системы, имеет атрибут

9

archive, который в Свойствах файла отображается как «Файл готов для архивирования» (откройте Свойства файла и нажмите кнопку «Другие»). Если в Свойствах файла вручную убрать галочку у этого атрибута, то при любом изменении в файле операционная система автоматически снова установит этот атрибут. На использовании изменений данного атрибута основаны все используемые в системе Windows методики резервного копирования.

Типы резервного копирования

Утилитой ntbackup можно создавать резервные копии различных типов. Рассмотрим их отличительные особенности и различные варианты их применения.

Обычный (Normal)

При выполнении данного типа архивирования утилита ntbackup архивирует все файлы, отмеченные для архивации, при этом у всех заархивированных файлов очищается атрибут «Файл готов для архивирования». Данный вид архивирования необходим для создания еженедельных полных резервных копий каких-либо больших файловых ресурсов. Если в компании или организации имеются достаточные ресурсы, то можно ежедневно осуществлять полное архивирование данных.

Разностный (Differential)

При выполнении Разностного архивирования утилита ntbackup из файлов, отмеченных для архивирования, архивирует только те, у которых установлен атрибут «Файл готов для архивирования», при этом данный атрибут не очищается. Использование Обычного и Разностного архивирования позволяет сэкономить пространство на носителях с резервными копиями и ускорить процесс создания ежедневных копий. Например, если раз в неделю (как правило, в выходные дни) создавать Обычные копии, а в течение недели ежедневно (как правило, в ночное время) — Разностные, то получается выигрыш в объеме носителей для резервного копирования. При такой комбинации архивирования «Обычный + Разностный» процесс восстановления данных в случае утери информации потребует выполнения двух операций восстановления — сначала из последней Полной копии, а затем из последней Разностной резервной копии.

Добавочный (Incremental)

При выполнении Добавочного архивирования утилита ntbackup из файлов, отмеченных для архивирования, архивирует только те, у которых установлен атрибут «Файл готов для архивирования», при этом данный атрибут очищается. Использование Обычного (раз в неделю по выходным) и Добавочного (ежедневно в рабочие дни) архивирования также позволяет сэкономить пространство на носителях с резервными копиями и ускорить процесс создания ежедневных копий. Но процесс восстановления данных при использовании комбинации «Обычный + Добавочный» уже будет выполняться иначе: в случае утери информации для восстановления данных потребуется сначала восстановить данные из последней Полной копии, а затем последовательно из всех Добавочных копий, созданных после Полной копии.

Копирующий (Copy)

При таком типе архивирования утилита ntbackup заархивирует все отмеченные файлы, при этом атрибут «Файл готов для архивирования» остается без изменений.

Ежедневный (Daily)

Ежедневный тип архивирования создает резервные копии только тех файлов, которые были модифицированы в день создания резервной копии.

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

Разработка и реализация стратегии резервного копирования. Понятие плана архивации

10

Источник: https://studfile.net/preview/16413382/