Міністерство освіти та науки України
Кіровоградський Державний Технічний університет
Кафедра програмного забезпечення
Курсовий проект
з дисципліни “Програмування на мові ASM-86”
на тему:
“Контроль доступу
до вибраних файлів з веденням протоколу"
Зміст
1. Вступ
2. Постановка задачі
3. Обґрунтування вибору методів розв’язку задачі
4. Алгоритм програми
5. Реалізація програми
6. Системні вимоги
7. Інструкція для користувача
Висновки
Використана література
Додаток
Лістинг програми
1. Вступ У деяких випадках буває необхідно вести протокол роботи комп’ютера. Наприклад, записувати клавіші, які натискаються, записувати імена файлів, до яких звертається користувач. Описана програма дозволяє задати список розширень файлів і заносити у файл час і дату доступу до них.
2. Постановка задачі Треба написати програму, яка б дозволяла вести протокол доступу до потрібних файлів на диску, використовуючи мову програмування асемблер.
3. Обґрунтування вибору методів розв’язку задачі Для того, щоб вести контроль доступу до файлів, необхідно “впіймати" момент, в який відбувається доступ. Системний сервіс MS-DOS (переривання 21h) містить кілька функцій, які викликаються для звертання до файлів. Це функції створення, відкриття, закриття, запису та читання з файлів. Існують функції переміщення позиції та вилучання файлів.
При виклику переривання 21h код функції заноситься в регістр AH, і в інші регістри - інша інформація. Якщо перехопити переривання 21h, то перед обробкою можна перевірити, чи є код в регістрі АН кодом відкриття файла. В цьому випадку перед обробкою файла можна занести в інший файл дату, час та назву файла, до якого звертаються.
Для того, щоб не виникло за циклювання (для запису в протокол теж використовується функція відкриття!), перед викликом запису встановлюється прапорець, який вказує, що іде запис протоколу, і протоколювати цей виклик не треба. По завершенні він скидається.
4. Алгоритм програми Алгоритм основної частини
1. Перевірити наявність програми у пам’яті.
2. Прочитати з файла filelist. dat список розширень файлів.
3. Перехопити вектор переривання 21h
4. Завершитись і залишитись резидентно.
Алгоритм обробника переривання 21h.
1. Перевірити код функції. Якщо це не код 3dh (відкриття файлу), то передати керування стандартному обробнику.
2. Перевірити розширення файла. Якщо воно не співпадає з жодним з заданих, то передати керування стандартному обробнику.
3. Визначити та сформувати в текстовому вигляді дату і час
4. Відкрити файл, перейти на його останню позицію та записати туди ім’я, час та дату.
5. Закрити файл
6. Передати керування стандартному обробнику.
5. Реалізація програми Програма написана на мові програмування низького рівня Assembler. Її скомпільовано у вигляді COM-файла.
Після початку роботи, згідно алгоритму, відбувається перевірка наявності програми у пам’яті і перехоплення переривання 21h. Після цього програма починає обробку.
Програма містить декілька процедур:
read_extensions-читання розширень з filelist. dat
check_extension - перевірка співпадання розширень
process_file-запис у файл протоколу інформації
new_21h-новий обробник переривання 21h.
Для доступу до файлів використовуються функції переривання 21h. ............