Міністерство освіти та науки України
Кіровоградський Державний Технічний університет
Кафедра програмного забезпечення
Курсовий проект
з дисципліни “Програмування на мові ASM-86”
на тему:
“Контроль доступу
до вибраних файлів з веденням протоколу"
Зміст
1. Вступ
2. Постановка задачі
3. Обґрунтування вибору методів розв’язку задачі
4. Алгоритм програми
5. Реалізація програми
6. Системні вимоги
7. Інструкція для користувача
Висновки
Використана література
Додаток
Лістинг програми
У деяких випадках буває необхідно вести протокол роботи комп’ютера. Наприклад, записувати клавіші, які натискаються, записувати імена файлів, до яких звертається користувач. Описана програма дозволяє задати список розширень файлів і заносити у файл час і дату доступу до них.
Треба написати програму, яка б дозволяла вести протокол доступу до потрібних файлів на диску, використовуючи мову програмування асемблер.
Для того, щоб вести контроль доступу до файлів, необхідно “впіймати" момент, в який відбувається доступ. Системний сервіс MS-DOS (переривання 21h) містить кілька функцій, які викликаються для звертання до файлів. Це функції створення, відкриття, закриття, запису та читання з файлів. Існують функції переміщення позиції та вилучання файлів.
При виклику переривання 21h код функції заноситься в регістр AH, і в інші регістри - інша інформація. Якщо перехопити переривання 21h, то перед обробкою можна перевірити, чи є код в регістрі АН кодом відкриття файла. В цьому випадку перед обробкою файла можна занести в інший файл дату, час та назву файла, до якого звертаються.
Для того, щоб не виникло за циклювання (для запису в протокол теж використовується функція відкриття!), перед викликом запису встановлюється прапорець, який вказує, що іде запис протоколу, і протоколювати цей виклик не треба. По завершенні він скидається.
Алгоритм основної частини
1. Перевірити наявність програми у пам’яті.
2. Прочитати з файла filelist. dat список розширень файлів.
3. Перехопити вектор переривання 21h
4. Завершитись і залишитись резидентно.
Алгоритм обробника переривання 21h.
1. Перевірити код функції. Якщо це не код 3dh (відкриття файлу), то передати керування стандартному обробнику.
2. Перевірити розширення файла. Якщо воно не співпадає з жодним з заданих, то передати керування стандартному обробнику.
3. Визначити та сформувати в текстовому вигляді дату і час
4. Відкрити файл, перейти на його останню позицію та записати туди ім’я, час та дату.
5. Закрити файл
6. Передати керування стандартному обробнику.
Програма написана на мові програмування низького рівня Assembler. Її скомпільовано у вигляді COM-файла.
Після початку роботи, згідно алгоритму, відбувається перевірка наявності програми у пам’яті і перехоплення переривання 21h. Після цього програма починає обробку.
Програма містить декілька процедур:
read_extensions-читання розширень з filelist. dat
check_extension - перевірка співпадання розширень
process_file-запис у файл протоколу інформації
new_21h-новий обробник переривання 21h.
Для доступу до файлів використовуються функції переривання 21h. Для отримання часу використовується функція BIOS 1Ah.
Операційна система MS-DOS (НЕ Windows)
Процесор80286+
Пам’ять640K+
Жорсткий диск 5M+
Спочатку необхідно задати типи файлів, які треба контролювати. У файл filelist. dat необхідно записати розширення імен файлів, які треба контролювати, наприклад:
exe
com
bat
sys
txt
Після цього необхідно, знаходячись в ДОС, запустити програму filelist. doc. Якщо не виникне помилок, то програма завантажиться у пам’ять. Якщо програму вже завантажено, то вона видасть відповідне повідомлення.
Після цього буде створено (якщо немає) файл з протоколом (по змовчанню c: tempfilelist. log). При спробі відкрити або запустити файл з одним із вказаних розширень у протокол буде занесено ім’я файлу, дату і час події.
Отже, за допомогою написаної програми можна записувати у файл імена, дату і час виклику файлів заданого типу. Програма займає мало місця у пам’яті та невибаглива.
Також розглянуто методи побудови резидентних програм і роботу з перериванням 21h.
1. П. Абель "Мова асемблера для IBM PC та програмування." М.: Вища школа, 1992.
2. Конспект лекцій з дисципліни “Програмування на мові ASM-86"
.286
. model tiny
. code
org 100h
start:
jmp begin
old_21h dd 0
flag db 0
log_file db 'c: tempfilelist. log',0
filename db 200 dup (0)
data_str db '00-00-00 00: 00: 00 - '
eoln db 10,13
extensions db 100*3 dup (0)
fileerror db 'FILELIST. DAT Error! ',10,13,'$'
datname db 'filelist. dat',0
a_load db '
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.