cozy: Comparative Symbolic Execution for Binary Programs

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Helbling, Caleb, Leach-Krouse, Graham, Lasser, Sam, Sullivan, Greg
Formato: Preprint
Publicado: 2025
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866909767736229888
author Helbling, Caleb
Leach-Krouse, Graham
Lasser, Sam
Sullivan, Greg
author_facet Helbling, Caleb
Leach-Krouse, Graham
Lasser, Sam
Sullivan, Greg
contents This paper introduces cozy, a tool for analyzing and visualizing differences between two versions of a software binary. The primary use case for cozy is validating "micropatches": small binary or assembly-level patches inserted into existing compiled binaries. To perform this task, cozy leverages the Python-based angr symbolic execution framework. Our tool analyzes the output of symbolic execution to find end states for the pre- and post-patched binaries that are compatible (reachable from the same input). The tool then compares compatible states for observable differences in registers, memory, and side effects. To aid in usability, cozy comes with a web-based visual interface for viewing comparison results. This interface provides a rich set of operations for pruning, filtering, and exploring different types of program data.
format Preprint
id arxiv_https___arxiv_org_abs_2504_00151
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle cozy: Comparative Symbolic Execution for Binary Programs
Helbling, Caleb
Leach-Krouse, Graham
Lasser, Sam
Sullivan, Greg
Software Engineering
68N30
D.2.4; D.2.7
This paper introduces cozy, a tool for analyzing and visualizing differences between two versions of a software binary. The primary use case for cozy is validating "micropatches": small binary or assembly-level patches inserted into existing compiled binaries. To perform this task, cozy leverages the Python-based angr symbolic execution framework. Our tool analyzes the output of symbolic execution to find end states for the pre- and post-patched binaries that are compatible (reachable from the same input). The tool then compares compatible states for observable differences in registers, memory, and side effects. To aid in usability, cozy comes with a web-based visual interface for viewing comparison results. This interface provides a rich set of operations for pruning, filtering, and exploring different types of program data.
title cozy: Comparative Symbolic Execution for Binary Programs
topic Software Engineering
68N30
D.2.4; D.2.7
url https://arxiv.org/abs/2504.00151