гатьох точок зору - це і алгоритм, який вона реалізує, і послідовність команд процесора, і файл, що містить послідовність байтів і т.д. Всі ці поняття утворюють ієрархію моделей комп'ютерних програм. Можна ви-брати модель будь-якого рівня моделі та спосіб її подання, необ-хідно тільки щоб модель РПС і програми були задані одним і тим же способом, з використанням понять одного рівня. Іншою серйозною проблемою є створення формальних моделей програм, або хоча б певних класів РПС. Механізм завдання відносини між програмою і РПС визначається способом представлення моделі. Найбільш перспективним тут видається використання семантичних графів і об'єктно-орієнтованих моделей. p align="justify"> В цілому повний процес аналізу ПО включає в себе три види анали-за:
лексичний верифікаційний аналіз;
синтаксичний верифікаційний аналіз;
семантичний аналіз програм.
Кожен з видів аналізу являє собою закінчене дослідження програм відповідно до своєї спеціалізації.
Результати дослідження можуть мати як самостійне значення, так і корелюватися з результатами повного процесу аналізу.
Лексичний верифікаційний аналіз передбачає пошук розпізнавання і класифікацію різних лексем об'єкта дослідження (програма), представленого у виконуваних кодах. При цьому лексемами є сигнатури. У даному випадку здійснюється пошук сигнатур наступних класів:
сигнатури вірусів;
сигнатури елементів РПС;
сигнатури (лексеми) "підозрілих функцій";
сигнатури штатних процедур використання системних ресурсів і зовнішніх пристроїв.
Пошук лексем (сигнатур) реалізується за допомогою спеціальних про-грам-сканерів.
Синтаксичний верифікаційний аналіз передбачає пошук, розпізнавання і класифікацію синтаксичних структур РПС, а також по-будова структурно-алгоритмічної моделі самої програми.
Рішення задач пошуку і розпізнавання синтаксичних структур РПС має самостійне значення для верифікаційного аналізу програм, оскільки дозволяє здійснювати пошук елементів РПС, які не мають сигнатури. Структурно-алгоритмічна модель програми необхідна для реалізації наступного види аналізу - семантичного. p align="justify"> Семантичний аналіз передбачає дослідження програми вивчення сенсу складових її функцій (процедур) в аспекті операційного середовища комп'ютерної системи. На відміну від попередніх видів аналізу, заснованих на статичному дослідженні, семантичний аналіз націлений на вивчення динаміки програми - її взаємодії з навколишнім середовищем. Процес дослідження здійснюється у віртуальному операційному середовищі з повним контролем дій програми і відстеженням алгоритму її роботи за структурно-алгоритмічної моделі. p align="justify"> Семантичний аналіз є найбільш ефективним в...