# y1hng/wikirecon architecture

> Architecture diagram of the GitHub repository y1hng/wikirecon, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/y1hng/wikirecon
- Repository: https://github.com/y1hng/wikirecon

## Overview

WikiRecon is a Linux CLI for network reconnaissance. Users configure an interface, then select discovery, port enumeration, banner fingerprinting, route discovery, or a documented automated run. The interactive scanning module manages the individual operations and shares results through in-memory session state; the automated module also builds reports. The excerpts show most individual calls, but not the automated runner’s full implementation. The README/tree name the route module `traceoute.py`, while the interactive menu imports `scanners.traceroute`, which is absent from the tree, so that wiring is not represented.

Main entry points: [`scanners/scanning.py`](https://github.com/y1hng/wikirecon/blob/main/scanners/scanning.py) (Scan menu), [`scanners/automated_full_scan.py`](https://github.com/y1hng/wikirecon/blob/main/scanners/automated_full_scan.py) (Automated scan), [`main.py`](https://github.com/y1hng/wikirecon/blob/main/main.py) (Main menu), [`scanners/arp_scanner.py`](https://github.com/y1hng/wikirecon/blob/main/scanners/arp_scanner.py) (ARP discovery)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cli["CLI and configuration"]
  node_main["Main menu<br/>[main.py]"]
  node_config["Interface config<br/>[confs.py]"]
end

subgraph group_scan["Reconnaissance"]
  node_orchestrator["Scan menu<br/>[scanning.py]"]
  node_arp["ARP discovery<br/>[arp_scanner.py]"]
  node_ports["TCP port scan<br/>[portscanner.py]"]
  node_banners["Banner fingerprinting<br/>[banner_grabber.py]"]
  node_routes["ICMP route discovery<br/>[traceoute.py]"]
  node_automated["Automated scan"]
end

subgraph group_state["Session state"]
  node_memory[("Session memory<br/>[memory.py]")]
end

subgraph group_report["Results and reporting"]
  node_reports["HTML and CSV reports"]
end

node_operator(("Operator"))
node_network(("Target networks"))

node_operator -->|"uses CLI"| node_main
node_main -->|"opens scanners"| node_orchestrator
node_main -->|"sets configuration"| node_config
node_orchestrator -->|"reads settings"| node_config
node_orchestrator -->|"runs discovery"| node_arp
node_orchestrator -->|"runs port scan"| node_ports
node_orchestrator -->|"grabs banners"| node_banners
node_orchestrator -->|"reads and writes"| node_memory
node_orchestrator -->|"starts full scan"| node_automated
node_arp -->|"sends ARP probes"| node_network
node_ports -->|"sends TCP probes"| node_network
node_banners -->|"connects to services"| node_network
node_routes -->|"sends ICMP probes"| node_network
node_automated -->|"reads settings"| node_config
node_automated -->|"runs discovery"| node_arp
node_automated -->|"scans ports"| node_ports
node_automated -->|"grabs banners"| node_banners
node_automated -->|"imports route engine"| node_routes
node_automated -->|"generates reports"| node_reports

click node_main "https://github.com/y1hng/wikirecon/blob/main/main.py"
click node_config "https://github.com/y1hng/wikirecon/blob/main/confs.py"
click node_orchestrator "https://github.com/y1hng/wikirecon/blob/main/scanners/scanning.py"
click node_arp "https://github.com/y1hng/wikirecon/blob/main/scanners/arp_scanner.py"
click node_ports "https://github.com/y1hng/wikirecon/blob/main/scanners/portscanner.py"
click node_banners "https://github.com/y1hng/wikirecon/blob/main/scanners/banner_grabber.py"
click node_routes "https://github.com/y1hng/wikirecon/blob/main/scanners/traceoute.py"
click node_automated "https://github.com/y1hng/wikirecon/blob/main/scanners/automated_full_scan.py"
click node_memory "https://github.com/y1hng/wikirecon/blob/main/memory.py"
click node_reports "https://github.com/y1hng/wikirecon/blob/main/scanners/automated_full_scan.py"

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_main,node_config toneBlue
class node_orchestrator,node_arp,node_ports,node_banners,node_routes,node_automated toneAmber
class node_memory toneMint
class node_reports toneRose
class node_operator,node_network toneIndigo
```

## Components

### CLI and configuration

- [Main menu](https://github.com/y1hng/wikirecon/blob/main/main.py): `main.py`
- [Interface config](https://github.com/y1hng/wikirecon/blob/main/confs.py): `confs.py`

### Reconnaissance

- [Scan menu](https://github.com/y1hng/wikirecon/blob/main/scanners/scanning.py): `scanners/scanning.py`
- [ARP discovery](https://github.com/y1hng/wikirecon/blob/main/scanners/arp_scanner.py): `scanners/arp_scanner.py`
- [TCP port scan](https://github.com/y1hng/wikirecon/blob/main/scanners/portscanner.py): `scanners/portscanner.py`
- [Banner fingerprinting](https://github.com/y1hng/wikirecon/blob/main/scanners/banner_grabber.py): `scanners/banner_grabber.py`
- [ICMP route discovery](https://github.com/y1hng/wikirecon/blob/main/scanners/traceoute.py): `scanners/traceoute.py`
- [Automated scan](https://github.com/y1hng/wikirecon/blob/main/scanners/automated_full_scan.py): `scanners/automated_full_scan.py`

### Session state

- [Session memory](https://github.com/y1hng/wikirecon/blob/main/memory.py): `memory.py`

### Results and reporting

- [HTML and CSV reports](https://github.com/y1hng/wikirecon/blob/main/scanners/automated_full_scan.py): `scanners/automated_full_scan.py`

### Other components

- **Operator**
- **Target networks**

## Connections

- Operator → Main menu: uses CLI
- Main menu → Scan menu: opens scanners
- Main menu → Interface config: sets configuration
- Scan menu → Interface config: reads settings
- Scan menu → ARP discovery: runs discovery
- Scan menu → TCP port scan: runs port scan
- Scan menu → Banner fingerprinting: grabs banners
- Scan menu → Session memory: reads and writes
- Scan menu → Automated scan: starts full scan
- ARP discovery → Target networks: sends ARP probes
- TCP port scan → Target networks: sends TCP probes
- Banner fingerprinting → Target networks: connects to services
- ICMP route discovery → Target networks: sends ICMP probes
- Automated scan → Interface config: reads settings
- Automated scan → ARP discovery: runs discovery
- Automated scan → TCP port scan: scans ports
- Automated scan → Banner fingerprinting: grabs banners
- Automated scan → ICMP route discovery: imports route engine
- Automated scan → HTML and CSV reports: generates reports
