ClearView автоматически отслеживает нарушения работы программы и создает для нее бинарные патчи
Эта программа создана под руководством Martin C. Rinard, профессора MIT. ClearView не нуждается в исходном коде программы. Работа ClearView состоит из следующих стадий:
- Обучение -- наблюдая за нормальной работой приложения создается модель работы программы. Модель -- это набор утверждений (инвариантов) о состоянии регистров и памяти.
- Мониторинг -- с помощью подключаемых мониторов (в проекте использовались Heap Guard & Determina Memory Firewall) выявляются нарушения функционирования (типа срыва стэка).
- Идентификация связанных инвариантов -- в случае нарушения функционирования устанавливаются бинарные патчи недалеко от точки нарушения, которые выявляют связанные с нарушением инварианты.
- Генерация бинарных патчей -- кандидатов на починку. Патчи меняют функционирование программы только при нарушении связанных инвариантов.
- Проверка того, что патч-кандидат решает проблему и выбор одного из кандидатов.