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