- •Методические указания
- •Тула 2000 Содержание
- •Лабораторная работа № 1. Методы криптографии. Подстановки
- •1. Цель работы
- •Лабораторная работа № 2. Методы криптографии. Генерация псевдобесконечных ключей на основе датчиков псевдослучайных чисел
- •1. Цель работы
- •2. Теоретические положения
- •Лабораторная работа № 3. Методы двухключевой криптографии
- •1. Цель работы
- •2. Теоретические положения
- •Лабораторная работа № 4. Методы криптографии. Реализация процедур стандарта des
- •1. Цель работы
- •2. Теоретические положения
- •Лабораторная работа № 5. Методы криптографии. Реализация режимов стандарта des
- •1. Цель работы
- •2. Теоретические положения
- •Лабораторная работа № 6. Макросы документов ms word. Проектирование макросов. Проблемы информационной безопасности
- •1. Цель работы
- •2. Теоретические положения
- •Лабораторная работа № 7. Методы проектирования по информационной безопасности на основе технологии визуального программирования
- •1. Цель работы
- •2. Теоретические положения
- •Литература
Лабораторная работа № 6. Макросы документов ms word. Проектирование макросов. Проблемы информационной безопасности
1. Цель работы
Ознакомление с методами проектирования вирусов документов MS Word и борьбы с этими вирусами.
2. Теоретические положения
Начиная с MS Word версии 6.0, появилась возможность автоматизации работы с документами на основе макросов, написанных на WordBasic’е. Создать макрос достаточно просто. На 1-м этапе необходимо выбрать в пункте меню «Сервис» подпункты «Макрос» и «Макросы» (Alt+F8) (см. рис. 1).
Рис. 1. 1-й этап создания макроса.
На 2-м этапе необходимо набрать имя макроса в элементе «Имя:» и нажать кнопку «Создать» (см. рис. 2).
После чего откроется окно Visual Basic, в котором можно набирать тексты макросов и отлаживать их (3-й, заключительный этап). Макросы сохраняются в шаблоне документа MS Word. Запустить макрос можно следующими способами:
макрос с именем autoexec запускается автоматически при запуске MS Word;
макрос с именем autoload запускается автоматически при загрузке документа MS Word;
любой макрос в пошаговом или автоматическом режиме можно запустить из окна Visual Basic из пункта меню «Отладка»;
макрос с любым именем можно запустить щелкнув левой кнопкой мыши по «Полю» типа MacroButton, если поле связано с необходимым макросом.
Рис. 2. 2-й этап создания макроса
В настоящее время в операционных системах Windows 95 и выше чаще всего используются две версии MS Word. Это MS Word 95 и MS Word 97. В ниже приведенной таблице рассмотрим синтаксис написания основных операторов WordBasic для обеих версий MS Word.
№ п/п |
MS Word 95 |
MS Word 97 |
1 |
StartOfDocument |
WordBasic.StartOfDocument |
2 |
EditFind .Find = " ", .Format = 0 |
WordBasic.EditFind Find:=" ", Format:=0 |
3 |
CharRight 1, 1 |
WordBasic.CharRight 1, 1 |
4 |
Box$ = Right$(Selection$(), 1) |
Box$ = WordBasic.[Right$](WordBasic.[Selection$](), 1) |
5 |
FileFind .SearchPath = "A:\", .Name = "*.DOC" .SubDir = 1 |
WordBasic.FileFind SearchPath:="A:\", Name:="*.DOC", SubDir:=1 |
6 |
FileSaveAs .Name = "Lab51.doc", .Format = 0 |
WordBasic.FileSaveAs Name:="Lab51.doc", Format:=0 |
7 |
Open a$ For Input As #1 |
Open a$ For Input As 1 |
8 |
Open a$ For Append As #1 |
Open a$ For Append As 1 |
9 |
Seek(#1, 0) |
Seek 1, 0 |
10 |
Write #1, d$ |
Write #1, d$ |
11 |
b$ = Input$(256, #1) |
b$ = Input(256, 1) |
12 |
Close #1 |
Close 1 |
1 – установить курсор в начало документа;
2 – найти пробел (“ “) от текущего положения курсора до конца документа. При этом найденная строка (пробел) выделяется;
3 – курсор от текущего положения сдвигается вправо на одну позицию с выделением текста (эквивалентно одновременному нажатию клавиш Shift и курсор вправо). При отсутствии параметра второй единицы (, 1) выделения текста не происходит;
4 – строковой переменной Box$ присвоить один символ справа выделенного текста;
5 – на дискете A: найти все файлы с расширением *.DOC, включая каталоги (SubDir = 1). Если SubDir = 0, то каталоги не проверяются;
6 – сохранить файл в формате документа MS Word с именем Lab51.doc;
7 – открыть файл с номером #1 для чтения с именем, заданным в строковой переменной a$;
8 – открыть файл с номером #1 для добавления записей с именем, заданным в строковой переменной a$;
9 – встать на начало файла (смещение от начала файла – 0 байт) с номером #1;
10 – вывести в файл с номером #1 строковую переменную d$;
11 – считать в строковую переменную b$ из файла с номером #1 256 символов;
12 – закрыть файл с номером #1.
Как видно макросы могут портить информацию на компьютерах. Если Вы получили письмо, включающее макрос с именем autoexec или autoload, и задумали его прочитать, то содержимое файлов на Вашем компьютере может существенно измениться. Однако можно блокировать запуск макросов с именами autoexec или autoload следующими способами:
в пункте меню «Сервис» выбрать «Параметры» и во вкладыше «Общие» отметить пункт «Защита от вирусов в макросах». Тогда при наличае макросов будет появляться окно с разрешением о его запуске;
при запуске MS Word и загрузке документов MS Word необходимо держать нажатой клавишу Shift.
Ниже приведено несколько примеров с фрагментами макросов для MS Word 95.
Пример редактирования документов
Sub MAIN
StartOfDocument
EditFind .Find = " ", .Format = 0
While EditFindFound()
CharRight 1, 1
Box$ = Right$(Selection$(), 1)
While Box$ = " "
CharLeft 1
CharRight 2, 1
Box$ = Right$(Selection$(), 1)
If Box$ = " " Then Insert " "
Wend
CharRight 1
EditFind .Find = " ", .Format = 0
Wend
FileSaveAs .Name = "Lab51.doc", .Format = 0
End Sub
Пример использования подпрограмм в макросах
Sub MAIN
Tk_Zpt(".")
Tk_Zpt(",")
FileSaveAs .Name = "Lab52.doc", .Format = 0
End Sub
Sub Tk_Zpt(Sim$)
…
…
End Sub
Пример обработки файлов
Sub MAIN
FileFind .SearchPath = "a:\", .Name = "*.EXE"
size = CountFoundFiles()
If size > 0 Then
For count = 1 To size
a$ = FoundFileName$(count)
Open a$ For Input As #1
b$ = Input$(256, #1)
Close #1
d$ = ""
For i = 1 To 256
c$ = Left$(b$, i)
c$ = Right$(c$, 1)
…
c$ = Chr$(k)
d$ = d$ + c$
Next i
Open a$ For Append As #1
Seek(#1, 0)
Write #1, d$
Close #1
Next count
End If
End Sub
3. Задание на работу
Необходимо написать макрос, который множество пробелов заменял одним. Исправленный документ сохранить в файле Lab51.
Написать макрос, который бы редактировал правильное расположение в документе точек и запятых (макрос ,который … макрос, который…). Результат сохранить в файле Lab52.doc.
Написать макрос, который в начало всех документов Word на дискете a:\ вставлял бы строку «Примите самые добрые пожелания! [Текущая дата] [Текущее время]». (На основе метода FileFind)
Написать макрос, который модифицировал бы все файлы с расширением EXE на дискете a:\ следующим образом: первые 1024 байт сложить со значением 255 по mod 256.
4. Оборудование
ПЭВМ с архитектурой IBM PC, операционная система – Windows 95, текстовый процессор MS Word версии не ниже 95
5. Порядок выполнения работы
Согласно полученному варианту задания разработать и отладить макрос MS Word в соответствии с заданием.
Разработать методику тестирования макроса для выявления степени реализации его функциональных возможностей.
Оформить отчет.
6. Оформление отчета
Отчет должен содержать:
задание на лабораторную работу;
листинг разработанного макроса MS Word;
описание функционирования макроса.
7. Контрольные вопросы
Каким образом можно запустить макрос MS Word?
Каким образом можно блокировать запуск макросов с именами autoexec и autoload?
Напишите фрагмент макроса, который удалил бы все файлы с дискеты A:.
Напишите фрагмент макроса, который бы снял (завершил выполнение) MS Word.
Опишите процесс создания в документе MS Word «Поля» типа MacroButton.
Чем отличаются режимы отладки макросов в MS Word 95 и MS Word 97?
Возможно ли запустить макрос MS Word из какого-либо другого приложения Windows?