4 Repos
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 ist eine auf Haskell basierende Bibliothek und ein Kommandozeilen-Tool für die polyglotte Quellcode-Analyse. Es fungiert als Framework für statische Programmanalyse und als polyglotter Parser für abstrakte Syntaxbäume, der verschiedene Programmiersprachen in strukturierte Syntaxbäume auf Basis von Grammatikdefinitionen umwandelt. Das System zeichnet sich durch eine semantische Code-Vergleichs-Engine aus, die strukturelle und inhaltliche Änderungen zwischen Code-Versionen erkennt, anstatt sich auf rein textuelle Unterschiede zu verlassen. Es ermöglicht zudem die Analyse über verschiedene Programmiersyntaxen hinweg, indem es Oberflächensprachen in eine einheitliche, polyglotte Zwischenrepräsentation übersetzt. Das Framework bietet eine breite Palette an Funktionen für das Parsen von Sprachen wie Rust, Go, Python, Ruby, PHP, TypeScript und TSX. Es deckt die semantische Analyse durch Code-Scope-Mapping, Extraktion von Symbolen und die Generierung semantischer Graphen ab, ergänzt durch Werkzeuge zur Musteranalyse und Bewertung des Programmverhaltens. Das Toolset enthält Kommandozeilen-Dienstprogramme zur Standardisierung von Haskell-Quellcodedateien.
Provides a framework for mapping code scopes and extracting symbols to analyze program behavior.
Simplify ist eine Android-VM-Sandbox, ein Bytecode-Execution-Tracer und ein Framework für statische Analysen. Es dient als Dalvik-Bytecode-Deobfuscator, der entwickelt wurde, um lesbaren Code aus Binärdateien wiederherzustellen, indem das Programmverhalten ohne physisches Gerät simuliert wird. Das Projekt zeichnet sich durch die Verwendung von Execution-Graph-Analysen aus, um Reflection-Aufrufe aufzulösen und verschleierten Code durch Konstanten-Propagierung und das Entfernen von totem Code zu vereinfachen. Es nutzt Multi-Path-Ausführungssimulation, um alle möglichen bedingten Verzweigungsergebnisse zu verfolgen und den Befehlsfluss abzubilden, um konstante Werte zu identifizieren. Das System deckt ein breites Spektrum an Analysefunktionen ab, einschließlich der Verfolgung von Exception-Propagierungen, der Kategorisierung von Methoden-Seiteneffekten und der Simulation von Java-API-Aufrufen. Es bietet zudem Mechanismen zum Abfangen von Methodenausführungen über benutzerdefinierte Hooks, um den Zustand der virtuellen Maschine zu überwachen oder zu überschreiben.
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.