Смекни!
smekni.com

Захист від несанкціонованого доступу (стр. 2 из 3)

Прив'язка до місця розташування на диску

Якщо потрібно виключити копіювання програми з жорсткого диска на інший жорсткий диск, її можна прив'язати до номера кластера або сектора, із якого починається файл програми на диску. Прив'язка здійснюється в такий спосіб. Спеціально підготовлена установча програма відкриває файл із робочою програмою і по таблиці відкритих файлів знаходить початковий номер кластера. Це число, що є своєрідним ключем, записується установчою програмою у визначене місце файла робочої програми ( у поле даних). Робоча ж програма після запуску насамперед виконує ту ж операцію - визначає свою початкову адресу, а потім порівнює його з ключем. Якщо числа збігаються, програма приступає до виконання своєї змістовної частини; якщо не збігаються - аварийно завершується. При копіюванні програми на інший диск (або навіть на той же самий) вона виявиться розташованої в іншому місці і номер кластера, записаний нустановчою програмою вже не буде відповідати реальній адресі файла. У той же час за допомогою установчої дискети програму неважко встановити на будь-якому диску.

Ключова дискета з нестандартним форматом

Достатньо надійний засіб захисту програм від переносу на інші комп'ютери полягає у використанні ключової дискети. У цьому випадку робоча програма, що знаходиться на жорсткому диску, перед початком роботи перевіряє наявність на дисководі дискети з ключовою інформацією. Для того, щоб ключову дискету не можна було розмножити за допомогою команди DISKCOPY, що здійснює копіювання на фізичному рівні, ключова інформація записується на доріжці з нестандартним форматом, розташованої до того ж за межами робочого простору диска. Така ключова дискета підготовляється спеціальною установчою програмою, що за допомогою функції 05h переривання BIOS 13h, форматує, наприклад, доріжку номер 40 (або 80) із розміром сектора 256 байтів замість 512 і записує на її заданий ключ. Робоча програма перед початком роботи виконує читання нестандартної доріжки і при відсутності самої доріжки або ключа на ній аварийно завершується. Такий засіб зручний тим, що користувач, придбавши програмний продукт із ключовою дискетою, може вільно переносити його з комп'ютера на комп'ютер і навіть запускати його на декількох комп'ютерах одночасно, але не має можливості передати програмний пакет третій особі (не позбавивши себе ключової дискети).

Очевидно, що для жорсткості захисту розглянуті методи можуть використовуватися спільно в різноманітних комбінаціях.

Постанова задачі та методи її реалізації.Захист від НСД шляхом запису ключа за логічними межами файла

Як відомо, DOS виділяє місце під файли цілими кластерами, у результаті чого за логічним кінцем файла практично завжди є вільний простір (до кінця кластера). При копіюванні файла на інший диск реально переносяться тільки байти, що відповідають самому файлу, тому що число байтів що копіюються визначається логічною довжиною файла. Байти останнього кластера файла, що знаходяться за логічними межами файла, не копіюються. Якщо в них записати ключ, то при копіюванні ключ зникне. Після запису робочої програми на жорсткий диск вона встановлюється за допомогою спеціальної установчої програми (яка зберігається на дискеті). Установча програма відкриває файл із робочою програмою, переміщюає вказівник файла на його кінець і записує ключ (одне або декілька слів) за старими межами файла. Потім за допомогою засобів DOS файл укорочується до старої довжини. У результаті ключ надається фізично прилягаючим до файла, але логічно за його межами.

При використанні цього методу установча програма повинна перед записом ключа проаналізувати довжину файла. Якщо файл займає ціле число кластерів, його попередньо варто подовжити так, щоб він зайняв частину такого кластера, інакше нікуди буде записати ключ. Те ж утвориться, якщо, скажемо, при довжині ключа 2 байта файл займає ціле число кластеров мінус 1 байт. У цьому випадку файл також потребує подовження. Робоча програма після запуску виконує ті ж операції, що і установча (за винятком подовження файла) і перевіряє, чи записаний відомий їй ключ за кінцем файла.


Процес підготування програми на мові ассемблера

Процес підготування і налагодження програми включає такі етапи:

1. підготування вихідного тексту програми за допомогою будь-якого текстового редактора. Файл із вихідним текстом повинний мати розширення . ASM;

2. трансляція програми за допомогою ассемблера MASM. EXE із метою одержання об'єктного файла;

3. компонування об'єктного модуля за допомогою компоновника LINK. ЕХЕ з метою одержання завантажувального файла

При виборі редактора для підготування вихідного тексту програми варто мати на увазі, що багато текстових процесорів (наприклад, Microsoft Word) додають у вихідний файл службову інформацію. Тому варто скористатися редактором, що виводить у вихідний файл "чистий текст", без яких-небудь керуючих символів. До таких редакторів відносяться, наприклад, широко поширені в нас Лексикон, Norton Editor і ін. Якщо файл із вихідним текстом програми названий P.ASM, то рядок виклику ассемблера може мати такий вид:

MASM IZ /ZI /N Р.Р.Р;

Ключ /Z дозволяє вивод на екран рядків вихідного тексту програми, у яких ассемблер виявив помилки (без цього ключа пошук помилок прийшлося б проводити по листингу трансляції).

Ключ /ZI управляє включенням в об'єктний файл номерів рядків вихідної програми й іншої інформації, не необхідної при виконанні програми, але використовуваної відлагоджувальником CodeView.

Ключ /N не включає висновок у листинг переліку символічних позначень у програмі, від чого декілька зменшується інформативність листинга, але істотно скорочується його розмір.

Параметри, що знаходяться далі, визначають імена модулів: вихідного (P. ASM), об'єктного (P. OBJ) і листинга (P. LST). Точка з комою не включає формування файла P. CRF.

Рядок виклику компоновника може мати такий вигляд:

LINK /CO Р,Р;

Ключ /З передає в завантажувальний файл символьну інформацію, що дозволяє відлагоджувальнику CV виводити на екран повний текст вихідної програми, включаючи мітки, коментарі та ін. Параметри, що знаходяться далі, позначають імена модулів: об'єктного (P. OBJ) і завантажувального (Р.ЕХЕ). Точка з комою не включає формування файла з листингом компонування (Р.МАР) і використання бібліотечного файла з об'єктними модулями підпрограм.

Компоновник створює завантажувальний модуль у форматі . ЕХЕ. Якщо вихідна програма написана у форматі . СОМ, то після трансляції і компонування її треба перетворити у файл типу . СОМ. Для цього використовується включена до складу DOS зовнішня команда EXE2BIN:

EXE2BIN P P. COM

Перший параметр позначає вихідний для команди EXE2BIN завантажувальний файл Р.ЕХЕ, другий - очікуваний результат перетворення. Вказівка розширення .СОМ у другому параметрі обов'язкова, тому що по замовчанню команда EXE2BIN створює файл із розширенням . BIN.

Використання інтерактивного відлагоджувальника CodeView Microsoft

Інтерактивнийвідлагоджувальник CodeView дозволяєвиконуватипрограмупокрокахабозточкамиостанова, виводитинаекранвмістрегістрівіобластейпам'яті, модифікувати (увідомихмежах) завантаженувпам'ятьпрограму, примусовозмінювативмістрегістрівівиконуватиіншідії, щодозволяютьунаочнійізручнійформівідлагоджуватипрограми, написанінамовіассемблера. відлагоджувальникзапускаєтьсякомандою

CV Р.ЕХЕ

де Р.ЕХЕ - ім'я файла з відлагодженою програмою. У процесі роботи відлагоджувальник використовує також файл із вихідним модулем P. ASM.

Реалізація задачі

Задача по забезпеченню захисту програм від копіювання шляхом запису ключа в порожнє місце кластера за межами файлу з програмою потребує написання робочої програми WORK3.EXE, яка виводить на екран текст, що відповідає конкретному випадку завершення програми.

На початку програма читає перше слово за логічним кінцем файла WORK3.EXE, читає його ключ і порівнює його з ключем записаним в програмі. Якщо ключі не співпадають , програма аварійно завершується та видає відповідне повідомлення. В противному випадку програма видає повідомлення про нормальну роботу файла. Робоча програма потребує встановлення на жорсткому диску.

Також задача потребує написання установчої програми INSTALL3.EXE, яка призначена для установки на жорсткому диску робочої програми WORK3.EXE.

Установча програма записує за логічним кінцем файла робочої програми WORK3.EXE заданий ключ, попередньо проаналізувавши довжину файла WORK3.EXE і подовживши його на два байта (тобто фактично на цілий кластер), якщо за межами файла, але до кінця останнього зайнятого файлом кластера, не має місця для запису ключа.


Список скорочень

ПК – персональний комп’ютер.

НСД – несанкціонований доступ.


Список літератури

1. Финогенов К.Г. “Самоучитель по системным функциям MS-DOC”.

2. Скэнлон Л. “Персональные ЭВМ IBM PC и XT”

3. Фигурнов: "Работа пользователя с IBM PC".

4. Громов В.И. Васильев Г.А. "Энциклопедия компьютерной безопасности."


Текст програми

Програма WORK3. EXE

;Робоча програма WORK3.EXE, що потребує установки на жорсткому диску

;Основні фрагменти програми

;Відкриваємо файл із робочою програмою

jnc gol

jmp notopen

gol:

mov handle,AX ;Запам’ятаємодескриптор

;Зупинимовказівникна 2 байтаза ;кінцемфайла

mov АН,42h ;Функція установки пвказівника

mov AL,2 ;Режим - від кінця файла

mov BX,handle

mov CX,0

mov DX,2

Int 21h

;Виконаємо фіктивний запис 0 байтів, щоб збільшити файл на два байти

mov AH,40h

mov BX,handle

mov CX,0

mov DX,offset key_rd ;Фіктивнийпараметр