awesome-repositories.com
Blog
MCP
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetServeur MCPÀ proposNotre méthodologiePresse
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

22 dépôts

Awesome GitHub RepositoriesControl Flow Logic Models

Implements branching and iterative logic structures for visualizing decision-making processes in diagrams.

Distinct from Flow Control: Distinct from template logic controllers: focuses on visual modeling of control flow rather than template engine execution.

Explore 22 awesome GitHub repositories matching software engineering & architecture · Control Flow Logic Models. Refine with filters or upvote what's useful.

Awesome Control Flow Logic Models GitHub Repositories

Trouvez les meilleurs dépôts grâce à l'IA.Nous recherchons les dépôts les plus pertinents grâce à l'IA.
  • icsharpcode/ilspyAvatar de icsharpcode

    icsharpcode/ILSpy

    25,447Voir sur GitHub↗

    ILSpy is a .NET decompiler and binary analyzer designed to convert compiled .NET assemblies back into readable C# source code. It functions as a metadata explorer and a common intermediate language viewer, enabling the analysis of compiled code and the execution of reverse engineering workflows. The project distinguishes itself through specialized translation capabilities, such as converting compiled binary XML (BAML) back into human-readable XAML for user interface analysis. It also provides tools for inspecting native machine code and extracting metadata from program database (PDB) files.

    Decomposes method bodies into basic blocks and edges to visualize the logical execution paths of a function.

    C#
    Voir sur GitHub↗25,447
  • facebook/prepackAvatar de facebook

    facebook/prepack

    14,118Voir sur GitHub↗

    Prepack is a build-time transformation tool and static analysis engine designed to optimize JavaScript source code. By executing code during the build process, it evaluates program logic and state to precompute results, effectively simplifying complex operations before the application is deployed. The tool functions as a bundle optimizer that integrates into existing development pipelines to refine application logic. It employs abstract interpretation and symbolic execution to track program behavior across various paths, allowing it to perform constant folding, eliminate unreachable code, and

    Generates control flow graphs to identify and eliminate unreachable code paths.

    JavaScript
    Voir sur GitHub↗14,118
  • plantuml/plantumlAvatar de plantuml

    plantuml/plantuml

    13,093Voir sur GitHub↗

    PlantUML is a text-to-diagram generator that translates human-readable markup into structured graphical representations. It functions as a diagram-as-code tool, allowing users to create and maintain technical documentation, architectural models, and flowcharts by decoupling diagram content from visual layout. The project distinguishes itself through a comprehensive rendering pipeline that processes domain-specific markup into various output formats, including vector and raster graphics. It utilizes a graph-based layout engine to calculate spatial positioning, while a declarative styling layer

    Implements branching and iterative logic structures for visualizing decision-making processes in diagrams.

    Javadiagramdiagram-as-codediagrams
    Voir sur GitHub↗13,093
  • angr/angrAvatar de angr

    angr/angr

    8,898Voir sur GitHub↗

    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

    Automates the generation of control-flow graphs by mapping jumps and branches between basic blocks in binaries.

    Python
    Voir sur GitHub↗8,898
  • avast/retdecAvatar de avast

    avast/retdec

    8,556Voir sur GitHub↗

    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

    Generates call and control-flow graphs to visualize logical execution paths from binary code.

    C++
    Voir sur GitHub↗8,556
  • avast-tl/retdecAvatar de avast-tl

    avast-tl/retdec

    8,556Voir sur GitHub↗

    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

    Generates visual call graphs and control-flow graphs representing the logical execution paths of functions.

    C++
    Voir sur GitHub↗8,556
  • webassembly/binaryenAvatar de WebAssembly

    WebAssembly/binaryen

    8,354Voir sur GitHub↗

    Binaryen is a WebAssembly compiler toolchain and optimizer designed to transform, validate, and shrink binary modules. It provides a comprehensive intermediate representation framework that converts binary code into a single-assignment form to enable advanced program analysis and code transformation. The project includes a specialized transformation engine that applies iterative optimization passes to increase execution speed and reduce binary size. Additionally, it functions as a transpiler that translates WebAssembly binary modules into executable JavaScript for environments that lack nativ

    Converts arbitrary graphs of basic blocks and branches into valid structured execution paths for binary emission.

    WebAssemblyc-plus-pluscompilersemscripten
    Voir sur GitHub↗8,354
  • golang/toolsAvatar de golang

    golang/tools

    7,970Voir sur GitHub↗

    This project is a collection of official toolsets and server implementations designed for the parsing, formatting, and semantic analysis of the Go programming language. It includes a language server that provides real-time code intelligence and automated editing capabilities to editors via the Language Server Protocol. The toolset provides a suite of utilities for source code formatting and static analysis. This includes automated standardization of code layout, import organization, and the generation of string representation methods for enumerated types. The project covers broad static anal

    Generates directed graphs representing all possible execution paths to perform deep static analysis and bug detection.

    Go
    Voir sur GitHub↗7,970
  • 0xd4d/de4dotAvatar de 0xd4d

    0xd4d/de4dot

    7,426Voir sur GitHub↗

    de4dot is a .NET deobfuscator, unpacker, and assembly analysis tool. It is designed to remove obfuscation layers, restore metadata, and simplify bytecode control flow to transform protected binaries back into human-readable code. The project features specialized systems for decrypting strings and constants using both static and dynamic analysis. It identifies specific protection tools through pattern-based detection and strips anti-analysis protections, such as tamper detection and anti-debugging code. The tool provides a suite of reverse engineering capabilities, including binary wrapper un

    Simplifies bytecode control flow by removing proxy methods and inlining split functions.

    C#
    Voir sur GitHub↗7,426
  • microsoft/agent-frameworkAvatar de microsoft

    microsoft/agent-framework

    7,277Voir sur GitHub↗

    The agent-framework is an LLM agent orchestration framework and multi-agent workflow engine designed for building autonomous AI agents. It provides a tool integration layer for binding external functions, APIs, and sandboxed code as executable tools for language models. The framework distinguishes itself through a graph-based system for designing sequential and parallel task flows, featuring state management and checkpointing for long-running processes. It implements comprehensive conversational state management and an observability suite that uses telemetry to trace execution flows and monit

    Defines execution paths via directed graphs or functional logic to implement conditional routing.

    Pythonagent-frameworkagentic-aiagents
    Voir sur GitHub↗7,277
  • cppcheck-opensource/cppcheckAvatar de cppcheck-opensource

    cppcheck-opensource/cppcheck

    6,660Voir sur GitHub↗

    Cppcheck est un outil d'analyse statique et un linter pour le code source C et C++ conçu pour détecter les erreurs de programmation, les fuites de mémoire et les violations de sécurité sans exécuter le programme. Il fonctionne comme un moteur de détection de bugs et un outil d'assurance qualité pour identifier les problèmes de concurrence, les erreurs de transtypage et la conformité aux standards de codage sécurisé. Le projet fournit une interface utilisateur graphique pour sélectionner les fichiers et examiner les erreurs, ainsi qu'un linter pour faire respecter les conventions de nommage et les standards de codage. Il supporte la création de règles d'analyse personnalisées utilisant des expressions régulières pour identifier des patterns de codage spécifiques. L'outil inclut des capacités pour l'analyse incrémentale, la suppression d'avertissements et l'exclusion de fichiers pour gérer les grandes bases de code. Il propose également la génération de rapports HTML et l'intégration avec des éditeurs comme VS Code pour fournir une identification des erreurs pendant le développement.

    Models execution paths using control-flow graphs to detect concurrency issues and unreachable code.

    C++
    Voir sur GitHub↗6,660
  • crytic/slitherAvatar de crytic

    crytic/slither

    6,141Voir sur GitHub↗

    Builds per-function control flow graphs from the IR to enable path-sensitive analysis and vulnerability detection.

    Pythonethereumsoliditystatic-analysis
    Voir sur GitHub↗6,141
  • fesh0r/fernflowerAvatar de fesh0r

    fesh0r/fernflower

    4,308Voir sur GitHub↗

    Fernflower est un décompilateur de bytecode Java et un outil d'ingénierie inverse. Il transforme les fichiers de classe Java compilés en code source Java lisible par l'homme pour reconstruire la logique originale du programme et les noms de variables. L'outil fonctionne comme un processeur de bytecode en ligne de commande capable de traiter par lots des archives Java et des fichiers de classe. Il gère spécifiquement l'analyse de code obfusqué en renommant les identifiants ambigus et en résolvant les conflits de nommage pour rendre le code source résultant plus facile à suivre. Le système emploie l'analyse statique pour convertir le bytecode en source, utilisant l'extraction d'informations de débogage pour restaurer les noms de variables locales. Il reconstruit les structures de programme via l'analyse de graphe de flux de contrôle, l'inférence de type et la génération d'un arbre de syntaxe abstraite.

    Reconstructs structured loops and conditionals from arbitrary control-flow graphs extracted from bytecode.

    Java
    Voir sur GitHub↗4,308
  • rocky/python-uncompyle6Avatar de rocky

    rocky/python-uncompyle6

    4,302Voir sur GitHub↗

    python-uncompyle6 est un décompilateur de bytecode Python et un outil d'ingénierie inverse conçu pour convertir des fichiers de bytecode compilés en code source lisible par l'humain. Il fonctionne comme un récupérateur de code source et un désassembleur de bytecode, permettant l'analyse de la logique interne du programme et la reconstruction des constructions linguistiques originales. L'outil offre une prise en charge multi-version, permettant l'analyse et la récupération de code source à partir de bytecode créé à travers plusieurs versions différentes de l'interpréteur Python. Cela lui permet d'opérer comme un analyseur de bytecode multi-version capable d'interpréter des jeux d'instructions variés indépendamment de la version utilisée pour exécuter l'outil. Ses capacités couvrent l'analyse de bytecode et l'inspection de programme, incluant la possibilité de lister les instructions avec des drapeaux et opérandes interprétés. Le système peut reconstruire le code source à partir de fichiers entiers ou de segments fragmentés spécifiques, tels que les corps de lambda et les compréhensions de liste, en mappant les offsets de bytecode vers des fragments de source.

    Reconstructs structured if-else statements and loop hierarchies by analyzing bytecode branch instructions and logical blocks.

    Python
    Voir sur GitHub↗4,302
  • joxeankoret/diaphoraAvatar de joxeankoret

    joxeankoret/diaphora

    4,301Voir sur GitHub↗

    Diaphora est un outil de diff binaire et un moteur de similarité conçu pour comparer des binaires compilés et identifier les sections de code modifiées ou correspondantes. Il fonctionne comme un plugin d'ingénierie inverse qui établit des relations entre les fonctions et détecte les unités de compilation en utilisant l'analyse d'assembleur et la théorie des graphes. Le projet se spécialise dans l'analyse de correctifs de vulnérabilité, permettant aux utilisateurs de détecter les correctifs de sécurité en comparant différentes versions d'un binaire. Il synchronise les métadonnées d'analyse, telles que les noms de symboles et les commentaires, entre les binaires et génère des correctifs en comparant le pseudo-code décompilé. Le moteur utilise des graphes de flux de contrôle et une correspondance heuristique pour calculer les ratios de similarité entre les fonctions. Ses capacités plus larges incluent la cartographie des graphes d'appels, l'identification des limites des fichiers objets et la gestion de l'état d'analyse via une base de données relationnelle pour faciliter le référencement croisé à grande échelle.

    Generates control-flow graphs from binary code to calculate similarity ratios between functions.

    Python
    Voir sur GitHub↗4,301
  • jetbrains/fernflowerAvatar de JetBrains

    JetBrains/fernflower

    4,169Voir sur GitHub↗

    Fernflower is a Java bytecode decompiler designed to convert compiled Java class files back into human-readable source code. It functions as a bytecode analysis tool that recovers original program logic and structure from compiled binaries. The project includes capabilities for obfuscated identifier resolution to rename ambiguous member elements, ensuring clear identifiers in the resulting source. These features support the analysis of obfuscated code, legacy code recovery, and Java malware analysis for security auditing. The system utilizes a structural analysis pipeline that includes contr

    Reconstructs high-level loop and conditional logic from linear bytecode by analyzing jump instructions.

    Javadecompilerjavareverse-engineering
    Voir sur GitHub↗4,169
  • spotbugs/spotbugsAvatar de spotbugs

    spotbugs/spotbugs

    3,896Voir sur GitHub↗

    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.

    Constructs a representation of all possible execution paths to identify unreachable code and infinite loops.

    Java
    Voir sur GitHub↗3,896
  • yck1509/confuserexAvatar de yck1509

    yck1509/ConfuserEx

    3,762Voir sur GitHub↗

    ConfuserEx is a security toolset for .NET applications that functions as a code obfuscator, binary encryptor, and application protector. Its primary purpose is to prevent reverse engineering by hiding sensitive application logic and data. The project employs specific hardening techniques including symbol renaming to hinder human readability and control-flow mutation to confuse decompilers. It further protects binaries by encrypting constants and resources to stop static analysis and memory dumping, while blocking the use of debuggers and profilers to prevent runtime analysis. Additional capa

    Alters the execution path of methods to confuse decompilers and hide original program logic.

    C#
    Voir sur GitHub↗3,762
  • for-get/http-decision-diagramAvatar de for-GET

    for-GET/http-decision-diagram

    3,746Voir sur GitHub↗

    http-decision-diagram is a set of decision-making tools and visual logic diagrams used to resolve HTTP protocol behaviors, status codes, and cache eligibility. It functions as a status code resolver and cache eligibility evaluator, utilizing logic diagrams to determine correct responses based on web specifications. The project employs a rule-based decision tree and conditional flow modeling to translate combinations of request and response headers into deterministic status code outcomes. This specification-mapped logic allows for the evaluation of header-driven state resolution through a stru

    Implements visual logic structures and activity diagrams to model the complex decision paths for cache and status resolution.

    JavaScriptdecision-diagramhttp
    Voir sur GitHub↗3,746
  • matthewp/robotAvatar de matthewp

    matthewp/robot

    2,179Voir sur GitHub↗

    Robot is a functional and immutable finite state machine library for managing declarative application states and transitions. It utilizes an immutable state transition engine where next states and side effects are computed through pure functions operating on immutable data structures without any side-effect mutations. States and allowed transitions are mapped in a declarative state table definition, making the overall state machine logic readable and inspectable. The library connects finite state machines directly to component rendering engines through component reactive bindings, ensuring th

    Parses state definitions into graphical node and edge diagrams to visualize application logic and flows easily.

    JavaScript
    Voir sur GitHub↗2,179
Préc.12Suivant
  1. Home
  2. Software Engineering & Architecture
  3. Control Flow Logic Models

Explorer les sous-tags

  • Control-Flow Graph Generation3 sous-tagsGeneration of visual graphs representing the logical execution paths of functions through basic blocks and edges. **Distinct from Control Flow Logic Models:** Focuses on the automated generation of graphs from binary code rather than manual visual modeling of logic.
  • Sparse Value-Flow Graph GenerationsGenerates directed graphs capturing definition-use chains for pointers and memory objects. **Distinct from Control-Flow Graph Generation:** Distinct from Control-Flow Graph Generation by focusing on sparse value-flow and definition-use chains rather than basic block control paths.
  • Value-Flow Graph GenerationsConstructs interprocedural sparse value-flow graphs with structural optimization options. **Distinct from Control-Flow Graph Generation:** Distinct from Control-Flow Graph Generation by constructing value-flow and definition-use graphs rather than control-flow paths.