ВУЗ:
Составители:
22
Во-первых это работа с файловыми потоками (язык С++, библиотека iostream) для ус-
корения работы с дисковыми накопителями. В этом случае использование файлового вво-
да/вывода (классы ifstream, ofstream, fstream) позволяет работать с блоком заданной дли-
ны. При этом файл должен быть открыт для чтения в бинарном режиме (ios::binary).
Во-вторых несколько усложнив программу можно вычислять только те уравнения
НДСКУ, для которых очередной байт из файла будет входным сигналом, т.е. использует-
ся в правой части уравнения, что дает значительное сокращение объема вычислений;
В-третьих, возможна любая другая программная интерпретация алгоритма с языка
НДСКУ или непосредственно с языка РВАС, в том числе, с использованием функций по-
иска из библиотек каких-либо инструментальных средств.
В-четвертых, если программное приложение разрабатывается для многозадачной
ОС, то возможна организация двух параллельных нитей как показано на рис 3.2.
Проверк
а
сигнатур в
памяти
Загр
у
зка блока из
файла в память
Общая часть
программы
Поток 2,
приоритет n+1
Поток 1,
приоритет n
Рис. 3.2 Общая схема работы в системе "СОМПА"
Необходимо отметить, что программное приложение, реализующее алгоритм, должно
иметь современный графический интерфейс пользователя, обеспечивающий: идентифи-
кацию выполняемого приложения; меню, позволяющее выбрать один из пунктов "тести-
рование", "лечение", "тестирование и лечение". После выбора пункта меню пользователю
должна быть предложена форма с элементами управления, позволяющими выбрать диск,
каталог, файл, запустить или прервать поиск, сообщить об обнаружении цепочек-образов
с указанием имени файла, где обнаружены и какие именно. Если пользователь выберет на
диске каталог, то при поиске, необходимо обеспечить возможность сканирования файлов
не только внутри этого каталога, но и во всех вложенных. Дадим необходимую информа-
цию для программной реализации просмотра файлов каталога и файлов всех вложенных в
него каталогов. В далее приведенном примере используется инструментальная среда
С++Builder 3.0 и также даются сведения необходимые для использования Win32 API.
Пример подготовлен в среде программирования C++Builder 3.0. Для организации вы-
бора каталога были использованы визуальные компоненты TDriveComboBox,
TDirectoryListBox, TFileListBox из палитры Win 3.1. Формирование полного имени файла
(имя и путь доступа к нему), в котором будет идти поиск цепочки-образа, выполняется в
модуле result.cpp. Если выбран файл, то полное имя файла сохраняется в строковой пере-
менной path. Если же выбран каталог, то поиск вирусов будет осуществляться во всех
файлах этого каталога и во всех вложенных в него каталогах. В этом случае полное имя
файла хранится в строковой переменной buf, меняясь при каждом прохождении тела цик-
Во-первых это работа с файловыми потоками (язык С++, библиотека iostream) для ус- корения работы с дисковыми накопителями. В этом случае использование файлового вво- да/вывода (классы ifstream, ofstream, fstream) позволяет работать с блоком заданной дли- ны. При этом файл должен быть открыт для чтения в бинарном режиме (ios::binary). Во-вторых несколько усложнив программу можно вычислять только те уравнения НДСКУ, для которых очередной байт из файла будет входным сигналом, т.е. использует- ся в правой части уравнения, что дает значительное сокращение объема вычислений; В-третьих, возможна любая другая программная интерпретация алгоритма с языка НДСКУ или непосредственно с языка РВАС, в том числе, с использованием функций по- иска из библиотек каких-либо инструментальных средств. В-четвертых, если программное приложение разрабатывается для многозадачной ОС, то возможна организация двух параллельных нитей как показано на рис 3.2. Общая часть программы Поток 1, приоритет n Поток 2, приоритет n+1 Загрузка блока из Проверка файла в память сигнатур в памяти Рис. 3.2 Общая схема работы в системе "СОМПА" Необходимо отметить, что программное приложение, реализующее алгоритм, должно иметь современный графический интерфейс пользователя, обеспечивающий: идентифи- кацию выполняемого приложения; меню, позволяющее выбрать один из пунктов "тести- рование", "лечение", "тестирование и лечение". После выбора пункта меню пользователю должна быть предложена форма с элементами управления, позволяющими выбрать диск, каталог, файл, запустить или прервать поиск, сообщить об обнаружении цепочек-образов с указанием имени файла, где обнаружены и какие именно. Если пользователь выберет на диске каталог, то при поиске, необходимо обеспечить возможность сканирования файлов не только внутри этого каталога, но и во всех вложенных. Дадим необходимую информа- цию для программной реализации просмотра файлов каталога и файлов всех вложенных в него каталогов. В далее приведенном примере используется инструментальная среда С++Builder 3.0 и также даются сведения необходимые для использования Win32 API. Пример подготовлен в среде программирования C++Builder 3.0. Для организации вы- бора каталога были использованы визуальные компоненты TDriveComboBox, TDirectoryListBox, TFileListBox из палитры Win 3.1. Формирование полного имени файла (имя и путь доступа к нему), в котором будет идти поиск цепочки-образа, выполняется в модуле result.cpp. Если выбран файл, то полное имя файла сохраняется в строковой пере- менной path. Если же выбран каталог, то поиск вирусов будет осуществляться во всех файлах этого каталога и во всех вложенных в него каталогах. В этом случае полное имя файла хранится в строковой переменной buf, меняясь при каждом прохождении тела цик- 22
Страницы
- « первая
- ‹ предыдущая
- …
- 20
- 21
- 22
- 23
- 24
- …
- следующая ›
- последняя »