# deepakatdpk/dna-reverse-engineer architecture

> Architecture diagram of the GitHub repository deepakatdpk/dna-reverse-engineer, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/deepakatdpk/dna-reverse-engineer
- Repository: https://github.com/deepakatdpk/dna-reverse-engineer

## Overview

REA is a local reverse-engineering toolkit exposed through MCP and a CLI. An agent or terminal user requests an investigation; REA selects analysis workflows and providers, inspects target artifacts or live runtime behavior, and returns findings with evidence and limitations. Major branches include native binary providers, JavaScript/Electron and managed applications, Android, browser observation, and specialized EVM, firmware, and crash analysis. The graph combines README-documented capabilities with source-indexed runtime components; unsampled subsystem wiring is shown only where documented.

Main entry points: [`src/application/binary/SessionProviderRouter.ts`](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/binary/SessionProviderRouter.ts) (Binary session routing), [`src/application/native/NativeCallRoutes.ts`](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/native/NativeCallRoutes.ts) (Native analysis), [`src/main.ts`](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/main.ts) (MCP server), [`src/cli.ts`](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/cli.ts) (CLI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["User entry points"]
  node_mcp["MCP server<br/>[main.ts]"]
  node_cli["CLI<br/>[cli.ts]"]
end

subgraph group_workflow["Analysis workflows"]
  node_binary_session["Binary session routing"]
  node_analysis_contract["Provider capability"]
  node_js_workflow["JS app analysis"]
  node_native_workflow["Native analysis"]
  node_coverage["Reconstruction coverage"]
end

subgraph group_providers["Analysis providers"]
  node_ghidra["Ghidra provider"]
  node_hopper["Hopper provider<br/>[HopperClient.ts]"]
  node_ida["IDA provider"]
  node_jadx["JADX provider<br/>[JadxSession.ts]"]
end

subgraph group_observation["Runtime observation"]
  node_browser["Browser inspection<br/>[CdpConnection.ts]"]
  node_browser_storage["Web storage capture"]
end

subgraph group_evidence["Artifacts and evidence"]
  node_artifact_readers["Artifact readers<br/>[ArtifactReader.ts]"]
  node_javascript_artifacts["JS artifact analysis"]
  node_evm["EVM analysis"]
  node_crash["Recorded crashes"]
  node_firmware["Firmware analysis"]
  node_managed[".NET analysis"]
  node_saved_captures["Saved network captures"]
end

node_agent(("Agent or user"))

node_agent -->|"requests analysis"| node_mcp
node_agent -->|"runs workflows"| node_cli
node_mcp -->|"creates session"| node_binary_session
node_cli -->|"shares workflows"| node_binary_session
node_binary_session -->|"routes providers"| node_analysis_contract
node_binary_session -.->|"selects provider"| node_ghidra
node_binary_session -.->|"selects provider"| node_hopper
node_binary_session -.->|"selects provider"| node_ida
node_analysis_contract -->|"supports operations"| node_native_workflow
node_native_workflow -.->|"uses engine"| node_ghidra
node_native_workflow -.->|"uses engine"| node_hopper
node_native_workflow -.->|"uses engine"| node_ida
node_agent -->|"requests app analysis"| node_js_workflow
node_js_workflow -->|"analyzes artifacts"| node_javascript_artifacts
node_agent -->|"requests observation"| node_browser
node_browser_storage -->|"sends CDP commands"| node_browser
node_agent -->|"supplies target"| node_artifact_readers
node_agent -->|"requests bytecode analysis"| node_evm
node_agent -->|"requests crash analysis"| node_crash
node_agent -.->|"requests firmware analysis"| node_firmware
node_agent -->|"requests assembly analysis"| node_managed
node_agent -->|"provides capture"| node_saved_captures
node_mcp -->|"offers coverage tool"| node_coverage

click node_mcp "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/main.ts"
click node_cli "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/cli.ts"
click node_binary_session "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/binary/SessionProviderRouter.ts"
click node_analysis_contract "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/AnalysisProvider.ts"
click node_js_workflow "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/javascript/JavaScriptApplicationWorkflowService.ts"
click node_native_workflow "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/native/NativeCallRoutes.ts"
click node_coverage "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/ReconstructionCoverageService.ts"
click node_ghidra "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/ghidra/GhidraProviderClient.ts"
click node_hopper "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/hopper/HopperClient.ts"
click node_ida "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/ida/IdaSessionClient.ts"
click node_jadx "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/android/JadxSession.ts"
click node_browser "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/browser/CdpConnection.ts"
click node_browser_storage "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/browser/CdpCaptureStorageFingerprints.ts"
click node_artifact_readers "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/artifacts/ArtifactReader.ts"
click node_javascript_artifacts "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/javascript/JavaScriptArtifactAnalysis.ts"
click node_evm "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/evm/EvmoleInterfaceWorker.ts"
click node_crash "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/binaryDiagnostics/RecordedCrashService.ts"
click node_firmware "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/firmware/FirmwareAnalysisService.ts"
click node_managed "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/managed/ManagedReconstructionService.ts"
click node_saved_captures "https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/browser/history/HistoricalCaptureDecoder.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_mcp,node_cli,node_agent toneBlue
class node_binary_session,node_analysis_contract,node_js_workflow,node_native_workflow,node_coverage toneAmber
class node_ghidra,node_hopper,node_ida,node_jadx toneMint
class node_browser,node_browser_storage toneRose
class node_artifact_readers,node_javascript_artifacts,node_evm,node_crash,node_firmware,node_managed,node_saved_captures toneIndigo
```

## Components

### User entry points

- [MCP server](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/main.ts): `src/main.ts`
- [CLI](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/cli.ts): `src/cli.ts`

### Analysis workflows

- [Binary session routing](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/binary/SessionProviderRouter.ts): `src/application/binary/SessionProviderRouter.ts`
- [Provider capability](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/AnalysisProvider.ts): `src/application/AnalysisProvider.ts`
- [JS app analysis](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/javascript/JavaScriptApplicationWorkflowService.ts): `src/application/javascript/JavaScriptApplicationWorkflowService.ts`
- [Native analysis](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/native/NativeCallRoutes.ts): `src/application/native/NativeCallRoutes.ts`
- [Reconstruction coverage](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/ReconstructionCoverageService.ts): `src/application/ReconstructionCoverageService.ts`

### Analysis providers

- [Ghidra provider](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/ghidra/GhidraProviderClient.ts): `src/ghidra/GhidraProviderClient.ts`
- [Hopper provider](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/hopper/HopperClient.ts): `src/hopper/HopperClient.ts`
- [IDA provider](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/ida/IdaSessionClient.ts): `src/ida/IdaSessionClient.ts`
- [JADX provider](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/android/JadxSession.ts): `src/android/JadxSession.ts`

### Runtime observation

- [Browser inspection](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/browser/CdpConnection.ts): `src/browser/CdpConnection.ts`
- [Web storage capture](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/browser/CdpCaptureStorageFingerprints.ts): `src/browser/CdpCaptureStorageFingerprints.ts`

### Artifacts and evidence

- [Artifact readers](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/artifacts/ArtifactReader.ts): `src/artifacts/ArtifactReader.ts`
- [JS artifact analysis](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/javascript/JavaScriptArtifactAnalysis.ts): `src/application/javascript/JavaScriptArtifactAnalysis.ts`
- [EVM analysis](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/evm/EvmoleInterfaceWorker.ts): `src/evm/EvmoleInterfaceWorker.ts`
- [Recorded crashes](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/binaryDiagnostics/RecordedCrashService.ts): `src/application/binaryDiagnostics/RecordedCrashService.ts`
- [Firmware analysis](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/firmware/FirmwareAnalysisService.ts): `src/application/firmware/FirmwareAnalysisService.ts`
- [.NET analysis](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/application/managed/ManagedReconstructionService.ts): `src/application/managed/ManagedReconstructionService.ts`
- [Saved network captures](https://github.com/deepakatdpk/dna-reverse-engineer/blob/main/src/browser/history/HistoricalCaptureDecoder.ts): `src/browser/history/HistoricalCaptureDecoder.ts`

### Other components

- **Agent or user**

## Connections

- Agent or user → MCP server: requests analysis (evidence: `README.md`)
- Agent or user → CLI: runs workflows (evidence: `README.md`)
- MCP server → Binary session routing: creates session (evidence: `src/main.ts`)
- CLI → Binary session routing: shares workflows (evidence: `README.md`)
- Binary session routing → Provider capability: routes providers (evidence: `src/application/binary/SessionProviderRouter.ts`)
- Binary session routing → Ghidra provider: selects provider
- Binary session routing → Hopper provider: selects provider
- Binary session routing → IDA provider: selects provider
- Provider capability → Native analysis: supports operations (evidence: `src/application/AnalysisProvider.ts`)
- Native analysis → Ghidra provider: uses engine
- Native analysis → Hopper provider: uses engine
- Native analysis → IDA provider: uses engine
- Agent or user → JS app analysis: requests app analysis (evidence: `README.md`)
- JS app analysis → JS artifact analysis: analyzes artifacts (evidence: `src/application/javascript/JavaScriptApplicationWorkflowService.ts`)
- Agent or user → Browser inspection: requests observation (evidence: `README.md`)
- Web storage capture → Browser inspection: sends CDP commands (evidence: `src/browser/CdpCaptureStorageFingerprints.ts`)
- Agent or user → Artifact readers: supplies target (evidence: `README.md`)
- Agent or user → EVM analysis: requests bytecode analysis (evidence: `README.md`)
- Agent or user → Recorded crashes: requests crash analysis (evidence: `README.md`)
- Agent or user → Firmware analysis: requests firmware analysis
- Agent or user → .NET analysis: requests assembly analysis (evidence: `README.md`)
- Agent or user → Saved network captures: provides capture (evidence: `README.md`)
- MCP server → Reconstruction coverage: offers coverage tool
