Захист файлів від копіювання.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2008
Тип роботи:
Курсова робота
Предмет:
Системне програмування та операційні системи
Група:
КН-213

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і наукиУкраїни Національний університет “Львівська політехніка” Кафедра САПР Курсова робота З дисципліни “Системне програмування та операційні системи” На тему : “Захист файлів від копіювання ”  :   Львів 2008р Анотація Курсова робота з курсу “Системного програмування та операційні системи”. Захист файлів від копіювання /Оксенчук С.М., Львів: Національний університет “Львівська політехніка”, 2008.-22 с. Обсяг даної курсової роботи включно із кодом програм становить 22 сторінок. Курсова робота складається з 3-ох розділів, у яких наведено основні теоретичні відомості про мову програмування Асемблер та файлові системи. Описано основні функції та алгоритм. Курсова робота ставить ціль – програму для захисту файлів від копіювання. Кафедра ” Системи автоматизованого проектування ”  Дисципліна Сиситемне програмування і операційні системи  Спеціальність Комп’ютерні науки  Курс 2 Група КН-213 Семестр 4 .    Завдання на курсовий проект студента    /прізвище, ім’я, по - батькові/  1. Тема проекту /роботи/ Захист від копіювання    2. Термін здачі студентом закінченого проекту /роботи/ 19.05.2008 р.  3. Вихідні дані для проекту /роботи/  Загальна характеристика програми  Основні команди та функції для написання програми  4. Зміст розрахунково-пояснювальної записки /перелік питань, які підлягають розробці/  Вступна частина  Аналіз мови програмування Асемблер  Аналіз файлових систем  Реалізація програми  Аналіз складання алгоритму  Висновки                  6. Дата видачі завдання 24.02.2008 р.  № п/п Назва етапів курсового проекту ( роботи ) Термін виконання етапів проекту ( роботи ) Примітки  1. Отримання завдання 24.02.2008 р.   2. Уточнення завдання 10.03.2008 р.   3. Аналіз книжки ”Асемблер” 2 тиждні   4. Оформлення вступної частини 24.03.2008 р.   5. Розробка 2 розділу пояснювальної записки „Система програмування на Асемблері” 7.04.2008 р.   6. Розробка 3 розділу пояснювальної записки „Файлові системи” 21.04.2008 р.   7. Розробка 4 розділу пояснювальної записки „Реалізація програми” 5.05.2008 р.   8. Попередній перегляд проекту викладачем і виправлення помилок 12.05.2008 р.   9. Здача курсового проекту 19.05.2008 р.                        Студент     ( підпис ) ( прізвище, ім’я, по-батькові )   Керівник   Фармага Ігор Вірославович   ( підпис ) ( прізвище, ім’я, по-батькові )        ____________________2008 р      Національни університет ” Львівська політехніка”  /назва вищого учбового закладу/   ЗМІСТ Вступ 6 СИСТЕМА ПРОГРАМУВАННЯ НА АСЕМБЛЕРІ 7 Асемблер як мова програмування 7 Структура програми на Асемблері 7 Структура операндів 9 Способи адресації 9 Класифікація команд 10 ФАЙЛОВІ СИСТЕМИ 12 Класифікація файлових систем 12 Переваги файлової системи NTFS 13 Файлова система FAT 13 Файлова система DOS 15 FAT захищеного режиму 15 Операційні та файлові системи FAT 16 Текст програми 19 КОРОТКИЙ ОПИС АЛГОРИТМУ 21 Висновок   22 Вступ Питання на рахунок захисту інформації є дуже актуальним на сьогоднішній день. Інформація яка має велику цінність коштує не малі гроші. І щоб захистити дану інформацію, розробляють програми для захисту від копіювання. Моя програма написана на мові програмування Асемблер. Працює вона в сумісності з структура програми та операндів файловим менеджером Norton Commander. У цій пояснювальній записці я описав наступні розділи : СИСТЕМА ПРОГРАМУВАННЯ НА АСЕМБЛЕРІ . У даному розділі детально описуються нюанси мови програмування Асемблер, структура програми та операндів способи адресації ,класифікація команд. Наступним розділом є файлові системи. Тут розписана інформація про файлові системи типу NTFS,FAT,DOS. Наступним розділом є текст програми та коротка інструкція по роботі з нею. Після цього наступний розділ− короткий опис алгоритму який використовувався при написанні даної програми. І в кінці висновок на рахунок даної курсової роботи. СИСТЕМА ПРОГРАМУВАННЯ НА АСЕМБЛЕРІ Асемблер як мова програмування Асемблер є мовою програмування низького рівня. Він забезпечує написання, відладку та виконання програм на рівні близькому до машинних команд. Основна область застосування Асемблера - написання високоефективних програм системного характеру (драйверів, динамічна відеографіка, обробка сигналів в режимі реального часу, тощо). Програмування на Асемблері базується на системі програмування, яка забезпечує перехід від початкового файлу з текстом програми до завантаженого файлу, готового до виконання (інтерпретації мікропроцесором). Реалізація програми на Асемблері охоплює такі етапи: - написання програми на мові Асемблера, ввід та оформлення її у вигляді початкового файлу за допомогою текстового редактора (наприклад, Nогtоn Соmmander); - трансляція початкового файлу в об'єктний файл; - редагування зв'язків на основі декількох об'єктних файлів і формування завантаженого файлу для інтерпретації мікропроцесором. Така схема забезпечує незалежне асемблювання кількох початкових файлів з подальшим їх об'єднанням на рівні об'єктних файлів в один завантажений. Вказаний підхід реалізує концепції модульного програмування (розробка та реалізація програм по частинах - модулях). Відповідно розглядають початковий модуль, об'єктний модуль та завантажений модуль. Відомі і простіші схеми асемблювання, які забезпечують, перехід, від рівня початкових файлів до завантажених. Структура програми на Асемблері Програма. на Асемблері складається з модулів. Модулі складаються з сегментів. Сегменти складаються з процедур, команд та директив. Початковий програмний модуль складається з операторів. Виділяються оператори трьох типів: команди, директиви, коментар. Оператори команд визначають операції, які виконує процесор. Директиви вказують Асемблеру та Редактору зв'язків як оформляти (об'єднувати) команди та модулі в програму. Директиви також забезпечують розподіл пам'яті та визначення даних. Оператори команд складаються з символічного імені, коду операції, поля операндів та коментарі. Код операції визначає команду і відрізняє її від директиви. При написанні програми на Асемблері символічне ім’я ставиться перед кодом операції через двокрапку і називається міткою (внутрішньою). Мітка визначає адресу команди в оперативній пам'яті, що може використовуватись, наприклад, операторами переходу. Операнди (два, один, або відсутні) визначають дані над якими виконуються операції процесором. Операнди відділяються один від одного комою, а від коду команди - пропуском. Коментар відділяється від полів команди та операндів пропуском та крапкою з комою. Він не приймає участі в асемблюванні і служить лише для документування програми. Оператори директив складаються з символічного імені, коду псевдооперації, поля операндів та коментаря. Структура директиви аналогічна структурі команди. Код псевдооперації визначає зміст директиви. Операндів директиви може бути декілька і вони розділяються комами, а від коду псевдооперації відділяються пропуском. Символічне ім'я, яке стоїть на початку директиви розподілу пам'яті (директиви визначення) називається змінною. Символічне ім'я директиви відділяється від коду пропуском, а не двокрапкою, як мітка. Коментар записується через пропуск та крапку з комою. Програма складається з модулів, які можуть бути паралельно розроблені та реалізовані. Кожний модуль складається з операторів, які обробляються (транслюються) Асемблером. Для транслятора признакою кінця операторів модуля є директива - ЕND (Кінець). Крім того операнд директиви END визначає точку входу програми. Кожний модуль поділяється на окремі частини директивами сегментації, які визначають початок (SEGMENT) та кінець (ENDS) сегмента. Кожен із сегментів (типів сегментів) має певні функції і забезпечує структуризацію програм. Всі сегменти поіменовані (SSEG - стековий сегмент, CSEG - програмний сегмент, DSEG - сегмент даних, ESEG - додатковий сегмент даних). Директива ASSUME зв'язує довільні імена з сегментами відповідного типу. Типи сегментів визначають функції, що вони виконують (SS, ES та-DS - визначення даних, CS - послідовність команд, а також, директив, що групують ці команди у блоки). Програмний сегмент поділяється на частини директивами визначення процедур (по іменованих). Процедури близькі до підпрограм, але вони знаходяться, у складі початкового модуля. Основні складові програми вказані на прикладі CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG,ES:ESEG,SS:SSEG START PROC FAR PUSH DS PAD: MOV BX,DSEG CALL MAIN MOV AX,4C00H INT 21H START ENDP MAIN PROC NEAR MOV AM,CATS . . . RET MAIN ENDP CSEG ENDS END START Структура операндів Виділяють два основних типи операндів: регістровий та операнд в оперативній пам'яті. Команда може мати 0,1,2 операнди. Якщо операнд один, то він або регістровий, або в оперативній пам'яті. Якщо їх два, то один регістровий, а інший в оперативній пам'яті. Операнд в регістрі визначається ім'ям цього регістра. Операнд в оперативній пам'яті визначається вмістом регістрів, поіменованих символічними іменами, областями оперативної пам'яті та константами - це визначає спосіб адресації. Способи адресації Безпосередня адресація: MOV DX,3451H ; (3451H - абсолютна адреса) MOV DX,OFFSET CATS ; адреса, змінної CATS відносно початку сегмента) Індексна адресація: MOV DX,[SI] ; (посередня адресація) Відносна адресація: MOV DX,[BX] ; (посередня адресація) Адресація з індексацією та базуванням: MOV [DX+SI] ; (посередня адресація) Пряма адресація: MOV DX,CATS Пряма адресація з індексацією: MOV DX,CATS[SI] Пряма адресація з базуванням: MOV DX,CATS[BX] Пряма адресація з індексацією та базуванням: MOV DX,CATS[BX+SI] Якщо операнд заданий константою (безпосередня адресація), то він обробляється, як дані (при трансляції підставляється адреса цієї константи). Якщо в операнді вказане ім'я, то це - різновидність прямої адресації. Якщо в операнді імені немає, а є регістри (індексний чи базовий) в квадратних дужках, то це - посередня, адресація, бо адреса визначається через вміст регістрів. Коли є ім’я і регістри, то це пряма адресація з базуванням та індексуванням. Класифікація команд: Команди передачі даних MOV Приклади: MOV AH,CATS MOV AX,BX MOV AH,AL MOV AH,6 Команди порівняння CMP, TEST, умовного JE, JG, JL, JNE, та безумовного JMP переходу Приклади: JMP FAD CMP AH,01 JE C1 CMP AH,01 JNE C2 Команди виклику та повернення з процедури (підпрограми) CALL, RET Приклад: CALL PG RET 4 Команди роботи зі стеком PUSH, POP Приклад: PUSH AX POP Команди роботи зі стрічковими даними LOADSB, MOVSB Приклад: MOV SI, OFFSET CATS MOV DI, OFFSET RATS MOV CX,3 REP MOVSB Команда циклу LOOP Приклад: MOV CX,14 MOV SI,0 DAD: MOV AX,CAT[SI] . . . INC SI LOOP DAD . . . MOV CX,10 C1: PUSH CH MOV CX,20 C2: PUSH CX MOV CX,30 C3: MOV AX,B2 LOOP C3 POP CX LOOP C2 POP CX LOOP C1 Команди побітової обробки AND AX,OFFOOH ; (логічне множення) OR AX,OFFOOH ; (логічне додавання) XOR AH,OF1H TEST AX,BX ; (виконується аналогічно AND, однак операнди не міняються) Команди зсуву SHR AL,1 ; (вправо) MOV CL,3 SHL AL,CL ; (вліво) SAR AL,1 ; (арифметичний зсув вправо) ROR AL,1 ; (циклічний зсув вправо) ROR AL,1 ; (циклічний зсув вправо з переносом) Арифметичні команди ADD AX,DX ; (додавання) SUB AX,AX ; (віднімання) MUL BX ; (множення) DIV BX ; (ділення) Команди переривання INT, STI, CLI Команди вводу/виводу IN AX,DX OUT DX,AX Команди роботи з прапорцями (признаками) TEST AX,01100B Команди керування HLT,WAIT Команди завантаження сегментів LDS, LES   ФАЙЛОВІ СИСТЕМИ Файлова система – формат даних, який використовуються операційною системою для збереження інформації про файли на логічному томі. Також цим поняттям позначають сукупність файлів та директорій, які розміщуються на одному логічному томі. Логічний том, на якому створено файлову систему, називають форматованим. Деякі файлові системи: FAT 16, FAT 32, NTFS. Класифікація файлових систем За призначенням файлові системи можна класифікувати на наступні категорії: • для носіїв з довільним доступом (наприклад, жорсткий диск): FAT32, HPFS, ext2 і ін. • для носіїв з послідовним доступом (наприклад, магнітні стрічки): QIC. • для оптичних носіїв – CD і DVD: ISO9660, ISO9690, HFS, UDF. • віртуальні файлові системи: AEFS і ін. • мережні файлові системи: NFS, SMBFS, SSHFS, Gmailfs. Однією з основних переваг операційної системи Windows XP Professional є підтримка файлової системи NTFS. Під файловою системою мається на увазі спосіб іменування, збереження та упорядкування файлів на комп'ютері. Завдяки можливості шифрувати файли та папки, і встановлювати заборону на доступ до них. Використання файлової системи NTFS підвищує безпеку комп'ютера. Файлова система NTFS безпечна та надійна. Вона забезпечує більш високу швидкодію, ніж файлові системи FAT16 і FAT32, використовувані в Windows Me, Windows 98 і Windows 95.Файлова система NTFS підтримується в операційних системах Windows NT Workstation і Windows 2000 Professional, але не підтримується в Windows Me, Windows 98 і Windows 95. Переваги файлової системи NTFS Технологія шифрованої файлової системи (Encrypting File System – EFS), використовувана в операційній системі Windows XP, допомагає захистити важливі дані. Файл, зашифрований за допомогою технології EFS, може бути відкритий тільки тим користувачем, який його зашифрував. Особливо зручно використовувати цю технологію на переносних комп'ютерах. У випадку, якщо такий комп'ютер буде загублений чи вкрадений, ніхто не зможе одержати доступ до файлів, що зберігаються на жорсткому диску. Операційна система Windows XP підтримує три файлові системи: NTFS, FAT16 і FAT32, тому на одному комп'ютері можна запускати не тільки Windows XP, але й більш ранні версії Windows, використовуючи конфігурацію з подвійним завантаженням. Файлова система FAT Перший байт FAT називається "Описувач середовища" (Media Descriptor) або байт ID ідентифікації FAT. Він має таке ж значення, як і байт-описувач середовища, що знаходиться в BOOT-секторі логічного диска. Наступні 5 байтів для 12-бітового формату або 7 байтів для 16-бітового формату завжди містять значення 0ffh. Вся інша частина FAT складається з 12-бітових або 16-бітових комірок, кожна комірка відповідає одному кластеру диска. Ці комірки можуть містити такі значення: FAT12 FAT16 000h0000h – вільний кластер, ff0h - ff6hfff0h - fff6h – зарезервований кластер, ff7hfff7h – поганий кластер, ff8h - fffhfff8h - ffffh – останній кластер у списку, 002h - fefh0002h - ffefh – номер такого кластера в списку. Безпосередній доступ до FAT може знадобитися для: • організації сканування каталогів для пошуку потрібних файлів; • для читання каталогів як файлів; • для організації захисту інформації від несанкціонованого копіювання. Загальна схема використання FAT така: • читаємо FAT у пам'ять. Як уже зазначалося FAT розташовується відразу після BOOT-сектора (логічний сектор із номером 1). Для точного визначення початкового сектора FAT потрібно прочитати у пам'ять BOOT-сектор і проаналізувати вміст блока параметрів BIOS. У поле ressecs записана кількість зарезервованих секторів, що розташовуються перед FAT. Поле fatsize містить розмір FAT у секторах. Крім того, варто враховувати, що на диску може знаходитися декілька копій FAT. Операційна система використовує тільки першу копію, інші потрібні для утіліт відновлення вмісту диска. Кількість копій FAT знаходиться в полі fatcnt BOOT-сектора; • потім необхідно визначити номер першого кластера файла, для якого необхідно визначити його розташування на диску; • використовуємо номер першого кластера як індекс у FAT для отримання номера такого кластера. Повторюємо цю процедуру доти, поки отримане з FAT значення не буде відповідати кінцю файла. Процедура витягу номера кластера з FAT залежить від формату таблиці розміщення файлів. 16-бітову FAT можна уявити як масив 16-бітових чисел. Для визначення номера такого кластера треба просто отримати 16-бітове значення з FAT, використавши в якості індексу номер попереднього кластера. Для 12-бітової FAT процедура значно складніша. Необхідно виконати такі дії: • помножити номер початкового кластера на 3; • розділити результат на 2 (тому що кожний елемент таблиці має довжину 1.5 байта); • прочитати 16-бітове слово з FAT, використовуючи в якості зсуву значення, отримане після ділення на 2; • якщо номер початкового кластера парний, на вибране з FAT слово треба накласти маску 0fffh, залишивши молодші 12 бітів. Якщо номер початкового кластера не парний, вибране з FAT значення необхідно зсунути вправо на 4 біта, залишивши старші 12 біт; • отриманий результат – номер такого кластера в ланцюгу, значення 0fffh відповідає кінцю ланцюга кластерів. Файлова система DOS Файлова система DOS має деревоподібну структуру. У кореневому каталозі розташовуються 32-байтові елементи, що містять інформацію про файли й інші каталоги. Для читання кореневого каталога необхідно визначити його розташування і розмір. Кореневий каталог знаходиться відразу за останньою копією FAT. Кількість секторів, що займаються однією копією FAT, знаходиться в блоці параметрів BIOS у BOOT-секторі в полі fatsize, кількість копій FAT – у полі fatcnt блока BPB. Отже, перед кореневим каталогом знаходиться один BOOT-сектор і (fatcnt_*_fatsize) секторів таблиці розміщення файлів FAT. Розмір кореневого каталога можна визначити виходячи із значення поля rootsize. У цьому полі при форматуванні диска записується максимальна кількість файлів і каталогів, що можуть знаходитися в кореневому каталозі. Для кожного елемента в каталозі виділяється 32 байта, тому кореневий каталог має довжину (32_*_rootsize) байтів. Після кореневого каталога на логічному диску знаходиться область файлів і підкаталогів кореневого каталога. На малюнку зображені всі області логічного диска. Таку структуру мають логічні диски, розташовані в розділах жорстких дисків, а також дискети. FAT захищеного режиму FAT захищеного режиму – це стандартна файлова система, яка використовується Windows 95 для пристроїв масової пам`яті, наприклад, для дисководів і жорстких дисків. FAT захищеного режиму сумісна з FAT MS-DOS і також зберігає інформацію про вміст диску на основі таблиці розміщення файлів  і записів в каталогах. Крім того, FAT захищеного режиму підтримує довгі імена і зберігає дату і час створення файла, а також дату останнього доступу. У FAT захищеного режиму допустимі імена файлів довжиною до 256 символів, включаючи нульовий завершаючий символ. В цьому плані вона схожа з фйловою системою Microsoft Windows NT (NTFS), яка теж працює з довжиною файлів до 256 символів. Довжина шляху в FAT захищеного режиму (без імені самого файлу) може бути до 246 символів (сюди входять ім’я диску, дві крапки і зворотній слеш). Максимальне число символів в повному імені файлів (разом з іменем диска, двокрапкою, шляхом і завершальним нульовим символом) рівне 260. Коли додаток створює файл чи каталог з довгими іменами, сичтема автоматично генерує для нього відповідний псевдонім в стандартному форматі "8.3", використовуючи ті символи, які допустимі в FAT MS-DOS. До них відносять будь-які комбінації латинських букв, цифр  і символів з ASCII-кодами більше 127, а також пробіл і спеціальні символи: !%()_-@`~{}&#^$' Не дивлячись на те, що пробіл допустимий в іменах файлів та каталогів у попередніх версіях DOS, багато додатків не признають їх. По цій причині операційна система, генеруючи псевдонім для довгих імен, не використовує пробіли. Крім того, MS-DOS не відрізняє в іменах файлів і каталогів букви верхнього і нижнього регістрів, це поширюється і на псевдоніми. Windows 95 зберігає регістр букв, вказаних в довгих іменах файлів. Але FAT захищеного режиму, не враховує регістр букв, і не дозволить створити в одному каталозі двох файлів наприклад з такими іменами FileName і filename. Операційні та файлові системи FAT Сьогодні FAT явно не є найдосконалішою з файлових систем, хоча і підтримується всіма ОС. Майже кожна операційна система пропонує власні формати, які мають переваги у відношенні збереження даних, швидкості доступу, використання об’єму жорсткого диску і т.п. Так, наприклад, при застосуванні Windows NT слід вибирати NTFS, якщо основними вимогами є надійність і швидкість. Правда при певних обставинах може самозаблокуватися, якщо із-за проблем в апаратній частині чи в програмному забезпеченні виявиться неможливим запустити цю операційну систему. До цих даних не можна буде звернутися навіть з допомогою іншої операційної системи. До файлової системи FAT16 може звертатися практично будь-яка ОС. Якщо створити первинний розділ в цьому форматі і якщо цей розділ має розмір до 1ГБ, то це найкращі умови для інсталяції декількох різних операційних систем на одному ПК. Існуючі розділи можуть зменшуватися або ділитися без втрати даних лише з допомогою комерційних допоміжних програм, наприклад Partition Magic. Користувач, який бажає розмістити на одному ПК довільну комбінацію самостійно загружаючих систем DOS, Windows 95/98 i NT 4.0 з можливістю сумісного доступу до масивів, не обійдеться без FAT16. Правда, перевагам сумісного використання масивів даних і програм протистоять деякі недоліки. Під традиційними версіями MS-DOS включно до версії 6,22 неможливо, наприклад, мати безпосередній доступ до файлів з довгими іменами, які використовуються Windows 95/98 або NT 4.0; такий доступ можна мати лише до файлів скороченими до 8 символів іменами MS-DOS і розширенням з трьох символів (формат 8.3). Якщо ви записуєте, переносите чи копіюєте в MS-DOS 6.22 і більш ранніх версіях файл, що має довге ім’я, то таке ім’я обрізається до формату 8.3. Ще неприємнішим є те, що деякі DOS чи Windows-програми оптимізації файлової системи при використанні їх у файлових системах Windows 95/98 чи NT 4.0 замість користі приносять шкоду, тому що заплутують таблицю розміщення файлів і структури директорій (наприклад, більш старі версії Norton Disk Doctor). Таким чином, програми DOS, які безпосередньо маніпулюють структурами директорій або FAT, застосовувати на FAT16 не можна. Ще один недолік файлового формату FAT16 максимальна ємність диску: з його використанням можна адресувати лише 2047 МБ на одному розділі. До того ж ці трохи більше 2 ГБ використовують ще дещо більше пам’яті оскільки FAT16 в цьому випадку розмір кластерів у 32 КБ. Це стає замітним при великій кількості малих файлів. Навіть дуже малі файли в будь-якому випадку займають не менше 32КБ пам’яті жорсткого диску. FAT32 підтримується Windows 95 OSR2, Windows 98 і Linux (починаючи з Kernel 2.0.34), а також майбутньою Windows NT5.0. Файлова система FAT32 дозволяє установити мінімальний розмір кластерів всього в 4КБ (замість 32КБ) навіть для дисків ємністю до 8 Гбайт. FAT12 і FAT16 вони також підтримують. Старіші версії Windows 95, NT 4.x, Linux, на жаль, не підтримують FAT32. Таким чином, для обміну даними між будь-якими операційними системами у випадку використання файлової системи FAT32 шлях закритий. ОС/Файлова система FAT16 FAT32  DOS/Windows 3.x + –  Windows 95 + (+) починаючи з OSR2  Windows 98 + +  Windows NT до 4.х + –  Windows NT 5.0 (*) + +  OS/2 + –  Linux + (+) починаючи з ядра 2.0.34   Текст програми   Текст програми, що реалізовує захист від копіювання вказаного файлу  .model small .code .386 org 2Ch envseg dw ? org 80h cmd_len db ? cmd_line db ? org 100h START: old_int21h: jmp short initialize dw 0 int21h_handler proc far pushf cmp ah, 3Ch je fn3Ch cmp ax, 716Ch je fn3Ch jmp short not_fn41h fn3Ch: push AX push BX mov BX, DX cmp byte ptr ds:[bx+0],':' je full_spec mov ah, 19h int 21h add al, 'A' jmp short compare full_spec: mov al, byte ptr [BX] and al, 11011111b compare: cmp al, byte ptr cs:cmd_line[1] je access_denied pop BX pop AX not_fn41h: popf jmp dword ptr cs:old_int21h access_denied: pop BX pop AX popf push bp mov bp, sp or word ptr [bp+6], 1 pop bp mov ax, 5 iret int21h_handler endp initialize proc near cmp byte ptr cmd_len, 3 jne not_install cmp byte ptr cmd_line[2],':' jne not_install mov al, byte ptr cmd_line[1] and al, 11011111b cmp al, 'A' jb not_install cmp al, 'Z' mov AX, 3521h int 21h mov word ptr old_int21h, BX mov word ptr old_int21h+2, ES mov AX, 2521h mov DX, offset int21h_handler int 21h mov AH, 49 mov ES, word ptr envseg int 21h mov DX, offset initialize int 27h not_install: mov AH, 9 mov DX, offset usage int 21h ret usage db "‚ЁЄ®аЁбв ­­п TSR.COM ",0Dh ,0Ah db "‡ Ў®а®­пн Є®Їiоў ­­п д ©«лў § § ¤ ­®Ј® ¤ЁбЄг",0Dh, 0Ah db "$" initialize endp end start Додаток Дана програма працює тільки в сумісності з файловим менеджером Norton Commander. Для того щоб захистити файл від копіювання потрібно запустити Norton Commander, ввести шлях до самої програми ,а потім через пробіл шлях до файлу який ми хочемо захистити. КОРОТКИЙ ОПИС АЛГОРИТМУ Серед функцій переривання 21Н є функції, що призначені для роботи з файлами: 3СН – створити або скопіювати короткий файл; 6СН – розширене відкриття файлу (поєднує функції 3СН, 3DH – відкриття файлу і 5BH – створення нового файлу) або копіювання довгих файлів. Для перезапису старого файлу з таким же ім’ям, наприклад, при копіюванні використовуються відповідно функції 3СН і 6СН, в залежності від розміру файлу. Дана програма базується на перехопленні переривання 21Н і забороні створення нового файлу. Тобто ми перевіряємо, чи номер функції є потрібним для нас (3СН або 6СН). Якщо так, то ми перевіряємо, чи буква диску, яка є в команді збігається з буквою диску, яку ми зберегли під час ініціалізації, якщо не збігається, то ми передаємо керування обробнику переривання 21Н. Проте, якщо номер функції не такий, як нам потрібно, то ми передаємо керування обробнику переривання 21Н і відновлюємо регістри, що були збережені в пам’яті. висновок У даній курсовій роботі я розробив програму для захисту від копіювання на мові програмування Асемблер. У своїй роботі я використав функції Dos для роботи з файлами і дисками, цим самим показавши свої знання і вміння роботи з цими функціями. Питання заборони від копіювання та захисту інформації є актуальною на сьогоднішній день, тому розробка програм такого типу має велику цінність.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!