Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 1243

Символьное выполнение

ПроверилCybersecurity entrepreneur & security researcher

Что такое Символьное выполнение?

Символьное выполнениеМетод анализа программ, при котором код выполняется с символьными входами, а ограничения на путях решаются SMT-решателем для поиска ошибок.


Движок символьного выполнения рассматривает входные данные как математические переменные и при каждом условном переходе ветвит исполнение. На каждом пути накапливаются ограничения в логике первого порядка; SMT-решатель вроде Z3 проверяет их выполнимость и, если возможно, выдаёт конкретный вход, ведущий программу по этому пути. Это позволяет формально доказать достижимость условий ошибки (переполнение, деление на ноль, попадание taint в опасный сток), но страдает от взрыва числа путей и сложности ограничений. Инструменты KLEE, angr и Manticore используются для усиления фаззеров, поиска глубоких уязвимостей и верификации свойств безопасности бинарных файлов.

Примеры

  1. 01

    Запуск KLEE по C-библиотеке для генерации входов, покрывающих каждое ветвление и срабатывающих assert-ов.

  2. 02

    Связка angr и AFL++ для решения ограничений, которые сам фаззинг преодолеть не может.

Частые вопросы

Что такое Символьное выполнение?

Метод анализа программ, при котором код выполняется с символьными входами, а ограничения на путях решаются SMT-решателем для поиска ошибок. Относится к категории Безопасность приложений в кибербезопасности.

Что означает Символьное выполнение?

Метод анализа программ, при котором код выполняется с символьными входами, а ограничения на путях решаются SMT-решателем для поиска ошибок.

Как защититься от Символьное выполнение?

Защита от Символьное выполнение обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия Символьное выполнение?

Распространённые альтернативные названия: Символьный анализ, Concolic-выполнение.

Связанные термины