AutoStub: Genetic Programming-Based Stub Creation for Symbolic Execution

2509.08524v1 cs.SE, cs.AI, cs.CR 2025-09-12
Авторы:

Felix Mächtle, Nils Loose, Jan-Niclas Serr, Jonas Sander, Thomas Eisenbarth

Резюме на русском

#### Контекст Symbolic execution является важной техникой для проверки программ, позволяющей изучать различные пути выполнения программы, используя символьные значения в качестве входных данных. Однако, эта техника сталкивается с ограничениями при столкновении с внешними функциями, такими как собственные методы или библиотеки, которые не входят в базовую программу. Традиционные методы прибегают к дополнительному контексту, дорогостоящим SMT-решателям или ручным вмешательствам, чтобы описать эти функции с помощью символьных макетов. Это создает проблемы в ситуациях, когда требуется автоматизированный подход для обхода этих ограничений. Мы предлагаем новую методику, которая автоматически генерирует символьные макеты для внешних функций во время символьного выполнения, используя генетическое программирование. #### Метод Метод AutoStub включает в себя несколько основных этапов. Когда символьный выполнятель сталкивается с внешней функцией, AutoStub начинает генерировать тренировочные данные, выполняя функцию на случайно сгенерированных входных значениях и записывая результаты. Затем, генетическое программирование использует эти данные для вывода выражений, которые приближаются к поведению функции. Эти выражения являются символьными макетами, которые могут быть использованы в символьном выполнении, не требуя дополнительных усилий от человека. Этот подход позволяет улучшить процесс тестирования, обойдя ограничения, связанные с внешними функциями. #### Результаты Мы провели ряд экспериментов, используя различные программные системы, чтобы оценить эффективность AutoStub. Наши результаты показали, что метод способен аппроксимировать внешние функции с точностью более 90% для 55% оценок, и может выявлять специфичные для языка функции, которые могут вызывать серьезные ошибки во время тестирования. Помимо этого, мы проверили, насколько эти символьные макеты позволяют расширить область программных путей для тестирования и повысить точность выявления ошибок. #### Значимость AutoStub может быть применен в различных сферах, где требуется автоматизированное тестирование программного обеспечения, включая безопасность, проверку соответствия стандартам и отладку. Основное преимущество заключается в том, что он упрощает процесс тестирования, уменьшая необходимость вручную создавать макеты, что может быть очень времязатратным и неточным. Этот подход также может обнаруживать скрытые ошибки и edge cases, которые в противном случае оставались бы незамеченными. Мы предлагаем, что развитие таких автоматизированных методов может привести к значительным улучшениям

Abstract

Symbolic execution is a powerful technique for software testing, but suffers from limitations when encountering external functions, such as native methods or third-party libraries. Existing solutions often require additional context, expensive SMT solvers, or manual intervention to approximate these functions through symbolic stubs. In this work, we propose a novel approach to automatically generate symbolic stubs for external functions during symbolic execution that leverages Genetic Programming. When the symbolic executor encounters an external function, AutoStub generates training data by executing the function on randomly generated inputs and collecting the outputs. Genetic Programming then derives expressions that approximate the behavior of the function, serving as symbolic stubs. These automatically generated stubs allow the symbolic executor to continue the analysis without manual intervention, enabling the exploration of program paths that were previously intractable. We demonstrate that AutoStub can automatically approximate external functions with over 90% accuracy for 55% of the functions evaluated, and can infer language-specific behaviors that reveal edge cases crucial for software testing.

Ссылки и действия

Связанные статьи

Semantic-Aware Fuzzing: An Empirical Framework for LLM-Guided, Reasoning-Driven ...

## Контекст Многочисленные проблемы безопасности в системах, таких как Интернет вещей (IoT), мобильные платформы и автом...

2025-09-26