Розробка програми захисту файлів від видалення в операційній системі MS-DOS
MS-DOS - перша операційна система. Створення в операційній системі MS-DOS резидентної програми захисту файлів від видалення, її використання в випадках захисту файлів від випадкового видалення. Структура вхідних та вихідних даних, алгоритм рішення задачі.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 16.11.2012 |
Размер файла | 35,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Зміст
- 1. Вступ
- 2. Технічні характеристики
- 2.1 Постановка задачі
- 2.2 Визначення структури вхідних даних
- 2.3 Визначення структури вихідних данних
- 2.4 Вимоги до технічних засобів
- 2.5 Вибір мови програмування
- 2.6 Опис алгоритму рішення задач
- 2.7 Виконання програми
- 3. Висновок
- Список використаних джерел
- Додатки
1. Вступ
Першою операційною системою є операційна система MS-DOS. Її використання в окремих випадках є необхідним (розробка програм, драйверів, заміна операційної системи), тому вона використовується і в наші дні.
В наш час комп'ютерна техніка проникла майже у всі сфери людською діяльності, і доля цього проникнення дедалі більшає, використовується як в науковій, промисловій, торговій, інформаційній сфері, так і в якості мультимедійного обладнання, тому дедалі актуальнішим стає питання зручності користування цією технікою. Оскільки користувач веде роботу безпосередньо з операційною системою, вона має бути якомога зручнішою.
Засобом програмування для виконання курсового проекту була обрана мова С, тому що вона має ряд переваг. Це мова високого рівня, має великий спектр функцій і операторів, що дає широкий простір для програміста. Окрім того, мова С є мовою системного програмування, наряду із зручністю використання має високу швидкодію.
Темою курсового проекту є створення резидентної програми захисту файлів від видалення в операційній системі MS-DOS, яка може використовуватися особою в випадках захисту файлів від випадкового видалення.
Стандартний набір команд операційної системи МS-DOS не є досить зручним для користувача, тому що не в ньому не передбачені деякі функції, що могли б спростити роботу користувачу. Саме зовнішні команди MS-DOS призначені для спрощення роботи операційною системою. Відомо, що MS-DOS не дозволяє переглядати дерево каталогів, в той час коли ця команда важлива при роботі з каталогами і файлами, дає змогу наочно побачити структуру їх розташування, значно спрощує і пришвидшує роботу користувача за рахунок візуального інтерфейсу.
програма захист файл видалення
Створювана програма дозволятиме користувачу задати з командного рядка початковий шлях і отримати на екрані дерево каталогів, починаючи з цього шляху до каталогів найнижчого рівня.
Така програма знадобиться як рядовим користувачам, так і спеціалістам - низькорівневим програмістам, системним адміністраторам.
2. Технічні характеристики
2.1 Постановка задачі
Даний курсовий проект "Резидентна програма захисту файлів від видалення" полягає у написанні резидентної програми, що забороняє видалення файлів в MS-DOS в разі, якщо користувач захоче видалити деякі файли.
Програма повинна виконувати наступні функції:
а) виводити титульну сторінку;
б) виводить підказку для користувача;
в) розраховувати розміри резидентної частини програми в параграфах;
г) при завершенні програми залишитися в оперативній пам`яті резидентною;
д) встановлювати свої оброблювачі переривань 0x21h, 9h, 08h;
в) оброблювати системне переривання клавіатури 0х09h;
ж) оброблювати системне переривання таймеру 0х21h, функцію 41h;
Ця програма повинна працювати на будь-якому комп'ютері, який сумісний з персональним комп'ютером та має операційну систему MS-DOS. Ця програма буде складатися з єдиного програмного модуля.
2.2 Визначення структури вхідних даних
Для програми вхідними даними можна вважати комбінацію клавіш, що користувач вводить з клавіатури.
Структура вхідних даних представлена в таблиці 2.1 Ця таблиця містить змінні, що дають змогу ввести та запам'ятовувати відповідну клавішу.
Таблиця 2.1 - Структура вхідних даних
Ідентифікатор |
Тип |
Діапазон значень |
Пояснення |
|
keycod |
int |
-32000 32000 |
Змінна яка зберігає код натиснутої клавіші |
|
flag |
Int |
-32000 32000 |
Змінна яка зберігає тимчасові данні |
|
f |
File |
-- |
Змінна для пошуку файлів |
2.3 Визначення структури вихідних данних
Для програми вихідними даними можна вважати ту дію коли комп'ютер виводить повідомлення що видалення файлу заборонено, при цьому здійснюється переривання INT 41h.
Структура вхідних даних представлена в таблиці 2.1.
Таблиця 2.2 - Структура вихідних даних
Ідентифікатор |
Тип |
Діапазон значень |
Пояснення |
|
f |
file |
- |
Змінна для збереження даних у файл |
2.4 Вимоги до технічних засобів
Дана програма розроблена на комп'ютері з такими технічними та програмними характеристиками:
- Процесор Intel Сeleron 2600 ГГц;
- Оперативна пам'ять DDRII 633Mh 1 Гбайт;
- Графічний адаптер GeForce 7300 GT 256 Мбайт;
- Монітор LG FLATRON T730BH;
- Операційна система Microsoft Windows XP Professional SP2;
- Мова програмування Borland C;
Створена програма потребує значно меншого апаратного забезпечення. Для нормальної роботи програми потрібні такі технічні на програмні засоби:
– Персональний комп'ютер (ПК), сумісний з ІВМ РС\ХТ;
– Кількість вільної оперативної пам'яті не менше 1 Мбайт;
– Вмонтований накопичувач на магнітному диску загальним об'ємом не менше 50 Мбайт;
– Монітор кольоровий чи чорно - білий;
– Операційна система MS-DOS версією 3 і вище;
2.5 Вибір мови програмування
Мова С є універсальною мовою програмування. Вона тісно пов'язана з операційною системою UNIX (UNIX та її програмне забезпечення написане на С). Сама мова, однак, не зв'язана з
якою-небудь однією операційною чи системною машинною і хоча її називають мовою системного програмування, тому що вона
зручна для написання операційних систем, він з рівним успіхом використовується при написанні великих обчислювальних програм, програм для обробки текстів і баз даних.
Мова С - це мова відносно "низького рівня", це означає, що С має справу з об'єктами того ж виду, що і більшість ЕОМ, а саме, із символами, числами й адресами.
Вони можуть поєднуватися і пересилатися за допомогою звичайних арифметичних і логічних операцій, здійснюваних реальними ЕОМ.
У мові С відсутні операції, що мають справу безпосередньо з складними об'єктами, такими як ряди символів, множини, чи списки з масивами, розглянутими як ціле. Тут, наприклад, немає ніякого аналога операціям, що оперують з цілими масивами і рядками. Мова не надає ніяких інших можливостей розподілу пам'яті, крім статичного визначення і механізму стеків, забезпечуваного локальними перемінних функцій. Для ефективної роботи компілятора досить усього 256 Kб оперативної пам'яті. Нарешті, сам по собі С не забезпечує ніяких можливостей уведення висновку: тут немає операторів уведення/висновку і ніяких убудованих методів доступу до файлів. Усі ці механізми високого рівня повинні забезпечуватися явно викликуваними функціями.
Аналогічно мова С пропонує тільки прості, послідовні конструкції потокові керування: перевірки, цикли, групування і підпрограми, але не мультипрограмування, рівнобіжні операції, чи синхронізацію спів програми.
Хоча відсутність деяких з цих засобів може виглядати як обтяжуюча неповноцінність, але утримання мови в скромних розмірах дає реальні переваги. Тому що С відносно малій, він не вимагає багато місця для свого опису і може бути швидко вивчений.
Спочатку, у тім виді, у якому його створив Деннис Ритчи, мова C містив усього 27 ключових слів. Коли з'явився стандарт ANSI C, було додано кілька нових зарезервованих слів. В Microsoft C набір ключових слів розширена і їхня кількість тепер перевищує 70.
Мова програмування С++ є мовою програмування загального призначення. Природна для нього область застосування - системне програмування, що розуміється в широкому змісті цього слова. Крім того, С++ успішно використовується в багатьох областях діяльності. Реалізація С++ тепер є на всіх машинах, починаючи із самих скромних мікрокомп'ютерів - до самих більших супер-эвм, і практично для всіх операційних систем.
Програми, написані мовою C, відрізняються високою ефективністю. Завдяки невеликому розміру модулів, що виконують, а також тому, що C являє собою мова досить низького рівня, швидкість виконання програм мовою C порівнянна зі швидкістю роботи їх асемблерних аналогів.
Мова C містить всі керуючі конструкції, характерні для сучасних мов програмування, у тому числі інструкції for, if/else, switch/case, while. На момент появи мови це було дуже більшим досягненням. Мова С також дозволяє створювати ізольовані програмні блоки, у межах яких змінні мають власну область видимості. Дозволяється створювати локальні змінні й передавати в підпрограми значення параметрів, а не самі параметри, щоб захистити їх від модифікації.
Мова C підтримує модульне програмування, суть якого складається в можливості роздільної компіляції й компонування різних частин програми. Наприклад, можна виконати компіляцію тільки тієї частини програми, що була змінена в ході останнього сеансу редагування. Це значно прискорює процес розробки великих і середніх проектів, особливо на машинах з обмеженими ресурсами.
Якби мова C не підтримувала модульне програмування, то після внесення невеликих змін у програмний код довелося б компілювати всю програму цілком, що може зайняти занадто багато часу.
2.6 Опис алгоритму рішення задач
Програма забороняє видаляти файли в MS - DOS, вона програмується таким чином:
– Для розширення набору стандартних функцій підключається наступні бібліотеки: dos. h - бібліотека для роботи з файловою системою MS - DOS, conio. h - бібліотека для створення графічного інтерфейсу
– stdio. h - бібліотека для вводу-виводу даних, bios. h - бібліотека для роботи з функціями BIOS;
– void interrupt (far *old21) (.); void interrupt (far *old28) (.) - Показник на стару функцію обробки переривань;
– void interrupt far new21 (.); void interrupt far new28 (…) - Оголошення новій функції обробки переривань
– Описуються змінні f1, f2, flag, qu типу int для запиту та натиснення клавіш F1 в структурі вхідних та вихідних даних;
– unsigned size - Розраховується розмір резидентної частини TSR - програми;
– size=_DS-_CS +_SP/16+1 - Обчислюємо розмір програми в параграфах;
– old21=_dos_getvect (0x21) - Запам'ятовуємо старий вектор переривання 9;
– _dos_setvect (0x21,new21) - Вбудовуємо свій обробник переривання 9;
– old28=_dos_getvect (0x28) - Запам'ятовуємо старий вектор переривання 28;
– _dos_setvect (0x28,new28) - Вбудовуємо свій обробник переривання 28;
– clrscr (); textcolor (12); gotoxy (20,6) - Очищуємо екран, задаємо координати та створюємо титульну сторінку;
– dos_keep (0,size) - Завершуємо програму і залишаємося в пам'яті;
– void interrupt far new28 (…) - Новий обробник переривання 28;
– asm cli - Заборона переривань;
– _chain_intr (old28) - Передача керування на старий обробник переривання;
– void interrupt far new28 (.) - Новий обрабник переривання;
– asm cli - заборона переривань;
– if (f1==1) - Якщо flag1 встановлений в 1, то виводиться допомога;
– clrscr (); cputs ("DOPOMOGA KORISTUVATHU\n") - Очищуємо екран та виводимо допомогу користувачу;
– f1=0 - сброс флага;
– clrscr (); textcolor (12); gotoxy (20,16); - Очищуємо екран, задаємо координати та виводимо запит користувача;
– flag=0 - Скидаємо флаг натиснення F1;
– if (qu==2) clrscr () puts ("pitanie mozhno otkluchit") - Якщо встановлено флаг підтвердження запиту виводиться "pitanie mozhno otkluchit";
– chain_intr (old28) - старий обробник переривання;
2.7 Виконання програми
Для запуску резидентної програми необхідно набрати її ім'я в командному рядку або вибрати її та запустити з будь - якого файлового менеджера. Наприклад: А: \VERTIK
Після запуску програми відбувається титульний аркуш на якому показано тему курсового проекту та його розробника.
При спробі видалення файлу програма повинна вивести попередження в якому повідомляється користувача про заборону видалення файлу.
3. Висновок
В процесі написання курсового проекту було створено резидентну програму яка забороняє видалення файлу в операційної системи MS - DOS.
В результаті розробки проекту мною самостійно була вивчена інформація про обробники переривань. Вивчив метод розміру та обчислювання програми в пам'яті комп'ютера. Мною були вивчені засоби для графічного оформлення програми.
Також був вивчений теоретичний матеріал, що стосується операційної системи MS - DOS, її внутрішньої архітектури й організації.
В результаті цього було розроблено програму, що є досить зручною у користуванні і достатньо інформативною навіть для недосвідченого користувача. Програма досить схожа із стандартними MS - DOS, що полегшує сприйняття при роботі з нею.
Список використаних джерел
1. Александр Фролов, Григорий Фролов Аппаратное обеспечение IBM PC. Том 2. - М.: Диалог-МИФИ, 1992
2. Александр Фролов, Григорий Фролов MS-DOS для программиста. Том 2. - М.: Диалог-МИФИ, 1995
3. Фролов А.В., Фролов Г.В. Библиотека системного программиста. Т.1. Часть 1, 2,3. Операционная система MS-DOS. М: ДИАЛОГ-МИФИ, 1993
4. Громов Ю.Ю., Татаренко С.И. Программирование на языке СИ: Учебное пособие. - Тамбов, 1995.
5. Шаньгин В.Ф., Бєляєва А.Н. Програмування на мові С/С++. - М.: Высшая школа, 1992.
6. Фролов А.В., Фролов Г.В. Библиотека системного программиста. Т.2. Аппаратное обеспечение IBM PC. Часть 1,2. - М: ДИАЛОГ-МИФИ, 1992
Додатки
Додаток А
Схема алгоритму програми
Рисунок А.1 - Схема роботи програми
Додаток Б
Лістинг програми
#include<conio. h>
#include<stdio. h>
#include<dos. h>
#include<bios. h>
void interrupt (far*old21) (.);
void interrupt (far*old28) (.);
void interrupt far new21 (.);
void interrupt far new28 (.);
int keycode, flag,f;
void main () {
unsigned size;
size=_DS-_CS+_SP/16+1;
old21=_dos_getvect (0x21);
_dos_setvect (0x21, new21);
old28=_dos_getvect (0x28);
_dos_setvect (0x28, new28);
clrscr ();
gotoxy (25,10); printf ("************************************\n");
gotoxy (25,11); printf ("* *\n");
gotoxy (25,12); printf ("* КУРСОВА РОБОТА *\n");
gotoxy (25,13); printf ("* з системного програмування *\n");
gotoxy (25,14); printf ("* тема РЕЗИДЕНТНА ПРОГРАМА ЗАБОРОНИ ВИДАЛЕННЯ ФАЙЛІВ *\n");
gotoxy (25,15); printf ("* СТУДЕНТА 481 ГРУПИ *\n");
gotoxy (25,16); printf ("* КРИЖАНОВСЬКОГО В.В. *\n");
gotoxy (25,17); printf ("* *\n");
gotoxy (25,18); printf ("*************************************\n");
gotoxy (25,29); printf (" ДЛЯ ПРОДОВЖЕННЯ РОБОТИ НАЖМІТЬ ENTER");
getch ();
flag=0;
_dos_keep (0, size);
}
void interrupt far new21 (.)
{
if (_AH==0x41)
{
f=1; _AL=0xFF;
}
else _chain_intr (old21);
}
void interrupt far new28 (.)
{
if (flag==1)
{ clrscr ();
cputs ("ВИДАЛЕННЯ ERROR) \n");
flag=0; }
_chain_intr (old28);
}
Размещено на Allbest.ru
Подобные документы
Огляд переваг асемблера при роботі резидентної програми русифікатора клавіатури і дисплея. Вивчення різновидів дискет, нутрощів дисковода, функцій базової версії DOS. Аналіз можливостей створення і обробки дискових файлів послідовним і прямим доступом.
курсовая работа [33,3 K], добавлен 20.04.2012Захист файлів від несанкціонованого доступу в ОС FreeBSD. Атрибути та права доступу до файлу. Загальні принципи захисту для всіх існуючих варіантів системи. Значення прав доступу для різних типів файлів. Паролі, їх роль у забезпеченні безпеки системи.
контрольная работа [33,0 K], добавлен 29.06.2010Методи роботи з операційною системою Windows: основні елементи інтерфейсу, механізми створення папки та ярлика. Призначення програми "Проводник". Алгоритм видалення, перейменування, копіювання файлів і папок. Критерії пошуку та структура вікна Windows.
лабораторная работа [20,1 K], добавлен 13.12.2010Призначення програми на мові Асемблера: захист файлів від несанкціонованого копіювання. Існуючі методи для захисту файлів від несанкціонованого доступу. Криптографія, прив'язка до місця розташування на диску, ключова дискета з нестандартним форматом.
курсовая работа [24,9 K], добавлен 08.08.2009Бібліотека документів, зображень, музична бібліотека та бібліотека відеозаписів. Алгоритм відкриття бібліотеки. Створення архівів файлів за допомогою спеціалізованих програм — архіваторів. Вибір методу стиснення. Видалення файлів після стиснення.
лабораторная работа [685,4 K], добавлен 13.02.2016Методика управління каталогами та атрибутами файлів. Аналіз вихідних даних, вибір підходу та технології реалізації програмного продукту. Розробка узагальненого та деталізованих алгоритмів роботи програми, інтеграція компонентів та комплексне тестування.
курсовая работа [2,8 M], добавлен 23.01.2012Створення програми для перегляду потрібної інформації, яка може бути використана будь яким користувачем ЕОМ. Користування та розуміння переглядачів текстових файлів. Використання читання тексту порціями для реалізації прокрутки екрану вверх та вниз.
курсовая работа [16,7 K], добавлен 12.08.2009Ведення протоколу роботи комп’ютера. Розробка програми для створення списку розширень файлів і занесення часу і дати доступу до них на мові програмування Асемблер. Виклик переривання 21h код-функції та занесення до регістрів. Алгоритм та лістинг програми.
курсовая работа [14,1 K], добавлен 08.08.2009Створення програми, що видає результати голосування та підсумки виборів. Алгоритм розробки програми. Опис структури даних та вимоги до них, стандартних процедур та функцій, файлів та їх призначення. Приклад тестування та результати роботи програми.
курсовая работа [1,0 M], добавлен 28.06.2012Написання програм для перейменування файлів та копіювання файлів і підкаталогів (аналоги REN, XCOPY). Вибір методу розв'язки задачі та його обґрунтування. Алгоритм та реалізація програми, її системні вимоги. Інструкція для користувача та лістинг.
курсовая работа [14,7 K], добавлен 08.08.2009