4 repositorios
Platforms and engines for building custom code analysis and structural transformation tools.
Explore 4 awesome GitHub repositories matching part of an awesome list · Static Analysis Frameworks. Refine with filters or upvote what's useful.
This project is a compiler development tutorial that provides a series of guides and exercises for building a complete compiler from scratch. It focuses on the implementation of a structured compilation pipeline to transform high-level source code into executable machine instructions. The project covers the creation of a machine code generator for specific processor architectures and a static analysis framework. This framework includes methodologies for implementing type checking and constant folding to verify logic correctness before the final execution phase. The instructional material enc
Provides a framework for implementing static analysis tasks like type checking and constant folding.
Semantic es una librería basada en Haskell y una herramienta de línea de comandos diseñada para el análisis de código fuente políglota. Funciona como un framework de análisis estático de programas y un analizador de árboles de sintaxis abstracta políglota que convierte múltiples lenguajes de programación en árboles de sintaxis estructurados basados en definiciones gramaticales. El sistema se distingue por un motor de comparación semántica de código que detecta cambios estructurales y significativos entre versiones de código en lugar de depender de diferencias textuales. Además, permite el análisis entre diferentes sintaxis de programación traduciendo lenguajes de superficie a una representación intermedia políglota unificada. El framework proporciona un amplio conjunto de capacidades para analizar lenguajes como Rust, Go, Python, Ruby, PHP, TypeScript y TSX. Cubre el análisis semántico mediante el mapeo del alcance del código, la extracción de símbolos y la generación de grafos semánticos, junto con herramientas para el análisis de patrones y la evaluación del comportamiento del programa. El conjunto de herramientas incluye utilidades de línea de comandos para estandarizar el diseño de archivos fuente de Haskell.
Provides a framework for mapping code scopes and extracting symbols to analyze program behavior.
Simplify es un sandbox de máquina virtual de Android, trazador de ejecución de bytecode y framework de análisis estático. Sirve como un desofuscador de bytecode Dalvik diseñado para recuperar código legible a partir de binarios mediante la simulación del comportamiento del programa sin necesidad de un dispositivo físico. El proyecto se distingue por utilizar análisis de grafos de ejecución para resolver llamadas de reflexión y simplificar código ofuscado mediante propagación de constantes y eliminación de código muerto. Emplea simulación de ejecución multipath para rastrear todos los posibles resultados de ramas condicionales y mapea el flujo de instrucciones para identificar valores constantes. El sistema cubre una amplia gama de capacidades de análisis, incluyendo el rastreo de propagación de excepciones, categorización de efectos secundarios de métodos y simulación de llamadas a la API de Java. También proporciona mecanismos para interceptar ejecuciones de métodos mediante hooks personalizados para monitorear o anular estados de la máquina virtual.
Provides a framework for simulating Java API calls and exception propagation to recover readable code from binaries.
PE-bear is a graphical portable executable analysis tool designed for inspecting, disassembling, and modifying the structure of Windows PE binary files. It functions as a static analysis framework used to identify malicious patterns and reverse engineer program logic. The project provides a binary diffing tool to identify structural and content differences between two executable files. It also includes a section editor for modifying binary layouts by adding or altering sections and imports. The tool covers a range of binary analysis capabilities, including machine code disassembly, file layo
Provides a suite of tools for identifying malicious patterns and reversing logic through signature matching.