14 dépôts
Tools for analyzing binaries and kernel environments across different CPU architectures.
Distinct from Cross-Architecture Binary Compilation: Existing candidates focus on compilation or downloading, not the analysis of multi-architecture binaries in a debugger.
Explore 14 awesome GitHub repositories matching operating systems & systems programming · Cross-Architecture Binary Analysis. Refine with filters or upvote what's useful.
pwndbg is a GDB plugin and binary analysis framework designed for reverse engineering, exploit development, and low-level program analysis. It extends the core functionality of the debugger to provide advanced memory inspection and automation tools. The project distinguishes itself with specialized capabilities for heap analysis across glibc, jemalloc, and musl, as well as a comprehensive kernel debugging toolkit for inspecting Linux kernel tasks and slab allocators. It includes an integrated ROP gadget searcher for constructing exploit chains and an LLM-powered debugging assistant that provi
Supports binary and kernel analysis across multiple CPU architectures on a single host.
Angr is a binary analysis framework and static analysis tool used for reverse engineering compiled binaries. It serves as a binary decompiler and a lifting platform that translates machine code into a common intermediate representation to enable cross-architecture analysis. The framework integrates a symbolic execution engine and constraint solvers to determine the inputs required to reach specific program states. It also employs untrusted code sandboxing to isolate guest code from the host environment during analysis. Its capabilities cover control flow and data flow analysis, including the
Translates machine code from various architectures into a common intermediate representation to enable unified analysis.
Capstone is a multi-architecture disassembly framework and binary analysis engine. It translates raw machine code from various CPU architectures, such as x86, ARM, and RISC-V, into human-readable assembly instructions. The engine distinguishes itself by providing instruction semantic decomposition, which lists implicit registers read and written, and the ability to customize instruction mnemonics to meet specific technical analysis standards. It also features resilient stream disassembly, allowing the process to resynchronize and continue after encountering invalid instructions or embedded da
Transforms binary machine code from various hardware architectures into human-readable assembly instructions.
RetDec is a reverse engineering framework and static binary analysis tool. Its primary purpose is to function as an LLVM-based machine code decompiler that translates binary machine code from multiple architectures into high-level C source code. The system employs a multi-stage lifting pipeline to recover program logic, using an intermediate representation to apply optimizations before emitting source code. It distinguishes itself through the ability to identify compilers and packers, perform executable unpacking, and reconstruct class hierarchies and original program structures. The framewo
Lifts machine code into a common intermediate representation to enable cross-architecture analysis and optimizations.
Retdec is an LLVM-based machine code decompiler and static binary analysis tool designed for binary reverse engineering. It translates binary executable code into high-level representations to facilitate the reconstruction of program logic from compiled machine code. The system utilizes a retargetable frontend architecture and a multi-stage lifting pipeline to convert raw bytes into a common intermediate language. It differentiates custom program logic from known library code through signature-based identification and provides utilities for binary symbol demangling to restore human-readable n
Translates machine code into a common intermediate representation to facilitate cross-architecture analysis and optimization.
LibChecker is an Android application library analyzer used to identify third-party libraries and classify software components within installed applications. It functions as a software component classifier and a native library ABI inspector to determine if an application is 32-bit or 64-bit. The tool utilizes a rules repository and a local database to match detected libraries against known software signatures. It employs regex-based pattern detection and rule-based matching to identify components, even when files have been renamed or obfuscated. The project provides capabilities for Android p
Inspects compiled library headers to determine the target processor architecture and instruction set.
A True Instrumentable Binary Emulation Framework
Debugs code across different operating systems and CPU architectures without switching tools or environments.
Ce projet est un guide complet de préparation aux entretiens techniques et une base de connaissances en informatique. Il sert de ressource d'étude structurée conçue pour aider les ingénieurs logiciels à réviser les concepts d'ingénierie fondamentaux et à se préparer aux évaluations de codage professionnelles. Le dépôt se concentre sur un large éventail de domaines théoriques et pratiques, incluant des références détaillées sur l'architecture des applications mobiles et les fondamentaux des systèmes d'exploitation. Il fournit des matériaux sélectionnés sur les modèles d'architecture logicielle et l'analyse des protocoles réseau pour soutenir le développement professionnel. Le contenu couvre des capacités fondamentales telles que les structures de données et les algorithmes, la concurrence et le multithreading, et la gestion de la mémoire. Il inclut également des approfondissements sur l'architecture système, notamment la planification des processus, la communication inter-processus et l'optimisation du rendu UI.
Analyzes program binaries by organizing them into read-only and read-write segments for efficient storage.
Ce projet est une suite complète de rétro-ingénierie Android qui fonctionne comme un décompilateur, un désobfuscateur de bytecode et un outil d'analyse de malware. Il est conçu pour convertir les binaires APK, DEX et OAT en code source lisible par l'homme en utilisant une implémentation native qui ne nécessite pas de machine virtuelle Java. La plateforme se distingue par son intégration avec Frida pour l'analyse dynamique, permettant aux utilisateurs de hooker des méthodes, d'injecter du JavaScript personnalisé et de dumper la mémoire de l'appareil en temps réel. Elle dispose également de moteurs de sécurité spécialisés, incluant un moteur de propagation de taint et une machine à états de pile, pour détecter les fuites de confidentialité, les comportements malveillants et les vulnérabilités de sécurité. La suite couvre un large éventail de capacités analytiques, incluant le patching et le repackaging de binaires, le mappage des dépendances par références croisées et l'analyse de flux de données. Elle fournit des outils pour l'identification des packers logiciels, le décodage de chaînes chiffrées et la recherche globale de métadonnées à travers les ressources de l'application. L'outil fournit une interface en ligne de commande et prend en charge l'automatisation de l'analyse via des scripts Python ou Java personnalisés.
Traces arguments and return values through intermediate representations to determine how data moves through a program.
ROPgadget est un outil d'analyse binaire et un désassembleur multi-architecture conçu pour localiser les séquences d'instructions utilisées pour la programmation orientée retour (ROP). Il fonctionne comme un framework de développement d'exploits qui identifie les gadgets au sein des binaires pour faciliter la création d'exploits de corruption de mémoire. L'outil prend en charge l'audit binaire multi-architecture, traitant le code machine x86, ARM, MIPS et RISC-V. Il fournit une interface unifiée pour analyser divers formats de fichiers exécutables, y compris ELF, PE et Mach-O. Ses capacités couvrent l'analyse des vulnérabilités binaires et le développement de charges utiles d'exploitation. Ceci est réalisé par désassemblage linéaire, recherche de gadgets basée sur des motifs et validation de séquences d'instructions pour garantir que les fragments identifiés sont exécutables.
Analyzes and parses binaries across multiple CPU architectures including x86, ARM, MIPS, and RISC-V.
Miasm est un framework de rétro-ingénierie Python conçu pour l'analyse binaire, le désassemblage et la modification. Il fonctionne comme un framework d'analyse binaire qui élève le code machine vers une représentation intermédiaire pour permettre la recherche en sécurité indépendante de la plateforme. Le système opère comme un moteur d'émulation binaire et une boîte à outils de modification, permettant l'exécution de code binaire dans un environnement virtuel pour suivre les changements d'état sans matériel natif. Il fournit des outils de patch binaire pour mettre à jour et modifier des fichiers binaires bruts sur plusieurs architectures CPU et formats d'exécutables. Le framework couvre des capacités de désassemblage, d'élévation vers une représentation intermédiaire et de simplification sémantique pour supprimer l'obfuscation binaire. Il inclut la prise en charge de l'analyse des formats binaires et du mappage mémoire pour suivre les références et la disposition lors de l'analyse de programmes compilés.
Translates architecture-specific assembly into a generic language to perform platform-independent analysis and simplification.
SpotBugs est un outil d'analyse statique et un analyseur de bytecode pour les applications Java. Il scanne les fichiers de classe compilés pour identifier les bugs, les vulnérabilités de sécurité et les problèmes de performance sans exécuter le code. Le système fonctionne à la fois comme un détecteur de bugs et un outil de test de sécurité d'application statique pour localiser les erreurs logiques et les abus d'API. Le projet se distingue par une architecture de détecteur basée sur des plugins qui permet l'intégration de bibliothèques externes pour ajouter des règles de détection personnalisées. Il fournit un audit de sécurité spécialisé pour les vulnérabilités telles que l'injection SQL, le cross-site scripting et le path traversal, parallèlement à un système modulaire pour affiner la précision de l'analyse et réduire les faux positifs. L'outil couvre un large éventail de domaines de détection, y compris les erreurs de synchronisation de concurrence, les déréférencements de pointeurs nuls, les fuites de ressources et les erreurs de transtypage. Il identifie également le code mort, les inefficacités de performance et les violations des idiomes de sérialisation. Ces capacités sont accessibles via une interface de ligne de commande, une interface utilisateur graphique et une intégration directe au sein des environnements de développement intégrés. SpotBugs peut être intégré dans des pipelines de build pour appliquer des portes de qualité et générer des rapports d'analyse aux formats HTML ou XML.
Tracks the flow of values across method boundaries to detect null pointer dereferences and resource leaks.
Flare-floss is a security utility and static binary string extractor designed to uncover hidden text and configuration data within compiled binaries. It functions as an obfuscated string decoder and reverse engineering tool to translate encoded strings into readable text for security auditing. The project employs emulated execution to capture the decrypted state of strings in memory by running small chunks of binary code in a virtual CPU. It further utilizes static analysis disassembly, intermediate representation analysis, and heuristic-based pattern matching to identify and decode strings t
Converts machine instructions into a simplified intermediate representation to track data flow and string manipulation logic.
proot-distro is a rootless container runtime and Linux distribution manager that allows users to install and run isolated guest environments without requiring administrative root privileges. It utilizes PRoot to simulate root access and filesystem redirection, enabling the deployment of full Linux distributions in a non-root space. The project functions as an OCI container image handler, capable of building, pulling, and pushing OCI-compatible images and manifests. It further serves as a cross-architecture execution layer, utilizing user-mode emulation to run binaries and containers built for
Supports the execution of binaries built for different CPU architectures using user-mode emulation.