9 repositorios
Mechanisms to ensure memory accesses remain within allocated boundaries to prevent unauthorized access and side-channel attacks.
Distinct from Memory Access Tracing: The candidates focus on profiling, tracing, or hardware-specific flash access rather than security-centric bounds enforcement.
Explore 9 awesome GitHub repositories matching security & cryptography · Memory Bounds Checking. Refine with filters or upvote what's useful.
Wasmtime is a WebAssembly runtime and sandboxed bytecode executor designed to run WebAssembly bytecode on a host system. It functions as an embeddable engine that integrates into applications through native APIs and language-specific bindings, as well as a standalone execution environment accessible via a command line interface. It is a WASI compatible runtime, implementing the WebAssembly System Interface to provide portable access to system resources. The engine utilizes a JIT compilation model to translate intermediate representation into optimized machine code for various CPU architecture
Implements strict checks on heap and table offsets to prevent unauthorized memory access and side-channel attacks.
This project is a comprehensive educational resource and programming course covering C++ language semantics and features from C++03 through C++26. It provides structured tutorials and technical guides focused on modern C++ development. The material offers specialized instruction on template metaprogramming, including the use of type traits and compile-time computations. It features detailed guides on concurrency and parallelism for multi-core execution, as well as a reference for software design applying SOLID principles and RAII. Additionally, it covers build performance optimization to redu
Enforces run-time precondition checks and bounds-checking on containers to harden library calls.
Infer is a static analysis toolset for Java, C, C++, and Objective-C designed to detect memory leaks, null dereferences, and resource bugs. It functions as a multi-language bug finder that identifies race conditions, deadlocks, and memory safety issues by translating source code into a common intermediate representation for analysis. The project distinguishes itself through an inter-procedural data flow analyzer that tracks movement between sources and sinks to detect tainted flows and generate data flow graphs. It also includes a framework for verifying temporal properties and reachability u
Analyzes array access patterns in source code to identify potential buffer overruns.
Draco is a library and toolset for compressing, transcoding, and decoding 3D geometric meshes and point cloud data. Its primary purpose is to reduce storage size and transmission bandwidth for 3D assets. The project includes a geometry optimizer specifically for glTF file containers to reduce asset footprints. It also features a hardened decoder designed to process malformed or untrusted 3D geometric data safely to prevent memory corruption and crashes. The software covers a broad range of 3D data processing capabilities, including geometric data reconstruction, point attribute management, a
Implements strict bounds checking and validation to prevent memory corruption from malformed 3D geometric data.
GSL is a Guidelines Support Library for C++ that provides a set of types and functions designed to implement the C++ Core Guidelines. It functions as a framework for improving code safety and portability across different platforms. The library provides a contract-based programming model to verify program invariants through precondition and postcondition assertions. It includes specialized wrappers for null-pointer safety and bounds-checked memory views to prevent buffer overflows and invalid memory access. The project also covers safe integer conversion to prevent data truncation and provide
Implements a specialized memory access wrapper that prevents buffer overflow errors through strict runtime bounds checking.
cppfront es un frontend de extensión de lenguaje C++ y traductor de fuente a fuente. Funciona como un transformador de sintaxis que convierte extensiones de lenguaje experimentales en código C++ compatible con el estándar, permitiendo la creación de prototipos de nuevas características del lenguaje dentro de sistemas de compilación existentes. El proyecto proporciona una capa de traducción que añade soporte para coincidencia de patrones, contratos e interpolación de cadenas. Incluye una herramienta de metaprogramación para reflexión en tiempo de compilación y generación automatizada de código utilizando metafunciones especializadas. El sistema automatiza varias tareas de desarrollo, incluyendo la resolución del orden de dependencias mediante declaraciones anticipadas automáticas y la gestión de modos de paso de parámetros. También aplica análisis estático para insertar comprobaciones de límites automáticas y optimizar la gestión de recursos aplicando semántica de movimiento (move semantics) en el último punto de uso de una variable. La herramienta incluye un mecanismo de verificación para asegurar que el código fuente estándar permanezca sin cambios durante el proceso de traducción para evitar regresiones de sintaxis.
Automatically inserts runtime checks on container subscript accesses to prevent out-of-bounds memory errors.
c3c is the compiler for the C3 programming language, transforming source code into executable binaries, static libraries, or dynamic libraries using an LLVM backend. It implements a system based on result-based error handling, scoped memory pooling, and a semantic macro system. The compiler provides first-class support for hardware-backed SIMD vectors that map directly to processor instructions and enables runtime polymorphism through interface-based dynamic dispatch. The project covers a broad set of low-level capabilities, including manual and pooled memory management, inline assembly inte
Inserts automatic runtime bounds and value checks during debug builds to identify bugs early.
golang101 es una base de conocimientos completa y una librería de referencia técnica sobre la programación en Go. Proporciona guías estructuradas y documentación que cubren la sintaxis de Go, el comportamiento del runtime y patrones de codificación idiomáticos. El proyecto sirve como guía dedicada a la optimización del rendimiento, ofreciendo estrategias técnicas para reducir las asignaciones de memoria, mejorar la recolección de basura y aumentar la velocidad de ejecución. También se centra en el sistema de tipos de Go, incluyendo la programación genérica y técnicas de sincronización concurrente. La librería abarca capacidades más amplias para el aprendizaje del lenguaje, incluyendo el estudio de punteros e interfaces, la implementación de programación concurrente mediante canales y operaciones atómicas, y el uso de cuestionarios técnicos para poner a prueba la competencia en el lenguaje. El contenido está redactado en markdown y se entrega como una librería de documentación de sitio estático que puede instalarse y alojarse en un servidor local para su navegación offline.
Provides technical strategies to eliminate redundant bound checks and increase program execution speed.
xtensor is a C++ multidimensional array library for numerical computing that provides N-dimensional containers with an interface mirroring the NumPy API. It utilizes a lazy evaluation expression engine to defer numerical computations until assignment, which minimizes memory allocations and intermediate copies. The library features a foreign memory array adaptor that allows it to wrap external buffers, such as NumPy arrays, to perform numerical operations in-place without duplicating data. It further optimizes performance through lazy broadcasting and a system that manages the lifetime of temp
Performs runtime bounds and dimension checks to detect indexing errors and shape mismatches.