6 repositorios
Static analysis techniques that solve systems of constraints to track variable ranges and pointer offsets.
Distinct from Range Constraints: Candidates focus on runtime value enforcement or random test data constraints, not static program analysis via constraint solving.
Explore 6 awesome GitHub repositories matching programming languages & runtimes · Constraint-Based Value Analysis. Refine with filters or upvote what's useful.
Mythril es un analizador de seguridad de contratos inteligentes para Ethereum Virtual Machine que utiliza ejecución simbólica para identificar vulnerabilidades en el bytecode antes del despliegue. Funciona como un escáner de vulnerabilidades y auditor formal, tratando las entradas del programa como símbolos matemáticos para probar la presencia de errores en la lógica del contrato. La herramienta realiza un análisis a nivel de bytecode para detectar fallos que pueden estar ocultos por compiladores de alto nivel. Integra solvers SMT para determinar si estados de vulnerabilidad específicos son alcanzables y compara trazas de ejecución simbólica contra una biblioteca de firmas de fallos de seguridad conocidos. El proyecto cubre una amplia gama de capacidades de análisis de seguridad, incluyendo detección de vulnerabilidades en blockchain, auditoría formal de lógica de contratos y pruebas de seguridad automatizadas. También proporciona integración para flujos de trabajo de Git para validar el código como parte de un proceso de commit.
Integrates SMT solvers to mathematically prove the reachability of specific vulnerability states.
Triton is a dynamic binary analysis framework designed to automate reverse engineering. It functions as a multi-architecture CPU emulator, an SMT-based symbolic execution engine, and a dynamic taint analysis tool. The framework translates raw machine instructions into abstract syntax trees, allowing it to represent binary program logic as a structured intermediate representation. This allows the system to map multiple hardware instruction sets to a single analysis framework and translate machine instructions into mathematical formulas for solving constraints. Its capabilities cover the simul
Translates machine instructions into mathematical formulas for formal analysis using SMT-based constraint solvers.
Ikos is a formal verification suite and static analysis framework designed to prove the absence of undefined behaviors and runtime errors in C and C++ source code. It functions as an abstract interpretation tool that approximates program execution to identify potential crashes and software defects. The system utilizes a compiler front-end to translate source code into a specialized abstract representation. This process decouples language parsing from the analysis logic, allowing the framework to perform deep program analysis via a formal verification system. The toolkit covers several analys
Tracks variable ranges and pointer offsets by solving systems of constraints during program traversal.
Kani is a formal verification tool and model checker for Rust. It functions as a bit-precise static analyzer that mathematically proves the correctness and memory safety of code by exhaustively analyzing program states to identify undefined behavior, panics, and logic errors. The tool identifies bugs by producing concrete counterexamples when program assertions or safety contracts are violated. It enables the definition of function contracts through preconditions and postconditions to verify that inputs and outputs match expected behavior. The system provides capabilities for Rust program an
Translates program logic into mathematical constraints to prove the absence of bugs using SMT solvers.
SVF is an open-source static program analysis framework and points-to analysis library that tracks memory references, variable aliases, and data dependencies across whole programs. The platform translates compiled intermediate code formats into unified internal representations, constructing constraint graphs, call graphs, and control-flow graphs to model interprocedural execution behavior and memory state. The framework incorporates specialized engines for flow-sensitive, flow-insensitive, and context-sensitive pointer analysis alongside sparse value-flow graph generation. It features memory
Builds constraint graphs for inclusion-based pointer analysis by iteratively resolving and adding copy edges.
This project is an open-source computer-aided design toolchain designed for the synthesis, placement, and routing of hardware designs onto programmable logic architectures. It serves as a comprehensive framework for research and development, enabling the transformation of hardware description language designs into optimized netlists and physical implementation files. By providing a modular pipeline, the system facilitates the entire flow from initial logic synthesis to the generation of configuration data for programmable hardware devices. The toolchain distinguishes itself through its focus
The toolchain evaluates the performance of a design by applying timing constraints and verifying that the implementation meets required signal propagation speeds.