# creepermpg/mythkit architecture

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

- Interactive diagram: https://gitdiagram.com/creepermpg/mythkit
- Repository: https://github.com/creepermpg/mythkit

## Overview

MythKit is a WPF Windows manager for Mythware classroom software. The user workflow spans Mythware discovery and status, home-page operations and password retrieval, optional restriction removal, and configurable UDP replay attacks; attack work is tracked through the shared task manager. The README also documents URI-triggered attacks and About information. Edges use explicit README statements or SOURCE INDEX references; unsampled subsystem wiring is omitted where not evidenced.

Main entry points: [`MythKit/App.xaml.cs`](https://github.com/creepermpg/mythkit/blob/master/MythKit/App.xaml.cs) (WPF application), [`MythKit/Pages/UDPAttack/AttackManagedTask.cs`](https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/AttackManagedTask.cs) (Attack execution task), [`MythKit/Pages/UDPAttack/AttackIndex.xaml.cs`](https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/AttackIndex.xaml.cs) (Attack configuration UI), [`MythKit/Tasks/TaskManager.cs`](https://github.com/creepermpg/mythkit/blob/master/MythKit/Tasks/TaskManager.cs) (Task manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application shell"]
  node_app["WPF application<br/>[App.xaml.cs]"]
  node_single["Single-instance relay"]
  node_uri["URI query parser"]
  node_about["About page<br/>[AboutIndex.xaml.cs]"]
end

subgraph group_mythware["Mythware management"]
  node_home["Home dashboard<br/>[HomeIndex.xaml.cs]"]
  node_suggestions["Home suggestions"]
  node_mythware["Mythware process manager"]
  node_mythstate["Mythware state<br/>[MythwareState.cs]"]
end

subgraph group_attacks["UDP replay attacks"]
  node_attackui["Attack configuration UI"]
  node_config["Attack configuration<br/>[AttackConfig.cs]"]
  node_patterns["Attack patterns<br/>[IAttackPattern.cs]"]
  node_packet["Packet model<br/>[AttackPacket.cs]"]
  node_attacktask["Attack execution task"]
  node_target["Attack target<br/>[AttackTarget.cs]"]
  node_attackdetail["Attack status controls"]
end

subgraph group_tasks["Task tracking"]
  node_tasks["Task manager<br/>[TaskManager.cs]"]
  node_taskentry["Task progress entry<br/>[TaskEntry.cs]"]
  node_taskui["Task manager page"]
end

subgraph group_system["System operations"]
  node_restrictions["Restriction removal"]
  node_recovery["Recovery settings"]
  node_native["Native operations<br/>[NativeMethods.cs]"]
  node_registry["Registry access<br/>[RegUtils.cs]"]
end

node_user(("User"))
node_external(("External caller"))

node_user -->|"launches"| node_app
node_app -->|"initializes"| node_single
node_single -->|"notifies arguments"| node_app
node_user -->|"views status"| node_home
node_home -->|"discovers and refreshes"| node_mythware
node_mythware -->|"reads install path"| node_registry
node_mythware -->|"updates state"| node_mythstate
node_home -->|"reads password"| node_registry
node_user -->|"uses"| node_restrictions
node_restrictions -->|"accesses registry"| node_registry
node_restrictions -->|"uses native calls"| node_native
node_user -->|"configures recovery"| node_recovery
node_external -->|"invokes URI"| node_app
node_app -->|"parses query"| node_uri
node_uri -.->|"provides attack parameters"| node_attackui
node_user -->|"configures attack"| node_attackui
node_attackui -->|"builds configuration"| node_config
node_attackui -->|"creates task"| node_attacktask
node_config -->|"selects pattern"| node_patterns
node_patterns -->|"constructs packets"| node_packet
node_patterns -->|"declares target"| node_target
node_attacktask -->|"sends packets"| node_packet
node_attacktask -->|"runs as managed task"| node_tasks
node_attacktask -->|"updates details"| node_attackdetail
node_tasks -->|"creates entries"| node_taskentry
node_taskentry -->|"reflects task updates"| node_tasks
node_taskui -->|"displays and controls"| node_tasks
node_user -->|"manages tasks"| node_taskui
node_user -->|"opens information"| node_about

click node_app "https://github.com/creepermpg/mythkit/blob/master/MythKit/App.xaml.cs"
click node_single "https://github.com/creepermpg/mythkit/blob/master/MythKit/SingleInstanceManager.cs"
click node_home "https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/Home/HomeIndex.xaml.cs"
click node_suggestions "https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/Home/Suggestions/AdministratorPermissionSuggestion.cs"
click node_mythware "https://github.com/creepermpg/mythkit/blob/master/MythKit/Mythware/MythwareInstance.cs"
click node_mythstate "https://github.com/creepermpg/mythkit/blob/master/MythKit/Mythware/MythwareState.cs"
click node_restrictions "https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/RestrictionsRemoving/RestrictionsRemovingIndex.xaml.cs"
click node_recovery "https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/RestrictionsRemoving/RecoverySettingsDialog.xaml.cs"
click node_native "https://github.com/creepermpg/mythkit/blob/master/MythKit/NativeMethods.cs"
click node_registry "https://github.com/creepermpg/mythkit/blob/master/MythKit/Utils/RegUtils.cs"
click node_attackui "https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/AttackIndex.xaml.cs"
click node_config "https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/AttackConfig.cs"
click node_patterns "https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/IAttackPattern.cs"
click node_packet "https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/AttackPacket.cs"
click node_attacktask "https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/AttackManagedTask.cs"
click node_target "https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/AttackTarget.cs"
click node_attackdetail "https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/AttackStateControl.xaml.cs"
click node_tasks "https://github.com/creepermpg/mythkit/blob/master/MythKit/Tasks/TaskManager.cs"
click node_taskentry "https://github.com/creepermpg/mythkit/blob/master/MythKit/Tasks/TaskEntry.cs"
click node_taskui "https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/TaskManager/TaskManagerIndex.xaml.cs"
click node_uri "https://github.com/creepermpg/mythkit/blob/master/MythKit/Utils/QueryStringHelper.cs"
click node_about "https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/About/AboutIndex.xaml.cs"

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_app,node_single,node_uri,node_about,node_user toneBlue
class node_home,node_suggestions,node_mythware,node_mythstate toneAmber
class node_attackui,node_config,node_patterns,node_packet,node_attacktask,node_target,node_attackdetail toneMint
class node_tasks,node_taskentry,node_taskui toneRose
class node_restrictions,node_recovery,node_native,node_registry,node_external toneIndigo
```

## Components

### Application shell

- [WPF application](https://github.com/creepermpg/mythkit/blob/master/MythKit/App.xaml.cs): `MythKit/App.xaml.cs`
- [Single-instance relay](https://github.com/creepermpg/mythkit/blob/master/MythKit/SingleInstanceManager.cs): `MythKit/SingleInstanceManager.cs`
- [URI query parser](https://github.com/creepermpg/mythkit/blob/master/MythKit/Utils/QueryStringHelper.cs): `MythKit/Utils/QueryStringHelper.cs`
- [About page](https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/About/AboutIndex.xaml.cs): `MythKit/Pages/About/AboutIndex.xaml.cs`

### Mythware management

- [Home dashboard](https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/Home/HomeIndex.xaml.cs): `MythKit/Pages/Home/HomeIndex.xaml.cs`
- [Home suggestions](https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/Home/Suggestions/AdministratorPermissionSuggestion.cs): `MythKit/Pages/Home/Suggestions/AdministratorPermissionSuggestion.cs`
- [Mythware process manager](https://github.com/creepermpg/mythkit/blob/master/MythKit/Mythware/MythwareInstance.cs): `MythKit/Mythware/MythwareInstance.cs`
- [Mythware state](https://github.com/creepermpg/mythkit/blob/master/MythKit/Mythware/MythwareState.cs): `MythKit/Mythware/MythwareState.cs`

### UDP replay attacks

- [Attack configuration UI](https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/AttackIndex.xaml.cs): `MythKit/Pages/UDPAttack/AttackIndex.xaml.cs`
- [Attack configuration](https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/AttackConfig.cs): `MythKit/Pages/UDPAttack/AttackConfig.cs`
- [Attack patterns](https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/IAttackPattern.cs): `MythKit/Pages/UDPAttack/IAttackPattern.cs`
- [Packet model](https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/AttackPacket.cs): `MythKit/Pages/UDPAttack/AttackPacket.cs`
- [Attack execution task](https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/AttackManagedTask.cs): `MythKit/Pages/UDPAttack/AttackManagedTask.cs`
- [Attack target](https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/AttackTarget.cs): `MythKit/Pages/UDPAttack/AttackTarget.cs`
- [Attack status controls](https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/UDPAttack/AttackStateControl.xaml.cs): `MythKit/Pages/UDPAttack/AttackStateControl.xaml.cs`

### Task tracking

- [Task manager](https://github.com/creepermpg/mythkit/blob/master/MythKit/Tasks/TaskManager.cs): `MythKit/Tasks/TaskManager.cs`
- [Task progress entry](https://github.com/creepermpg/mythkit/blob/master/MythKit/Tasks/TaskEntry.cs): `MythKit/Tasks/TaskEntry.cs`
- [Task manager page](https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/TaskManager/TaskManagerIndex.xaml.cs): `MythKit/Pages/TaskManager/TaskManagerIndex.xaml.cs`

### System operations

- [Restriction removal](https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/RestrictionsRemoving/RestrictionsRemovingIndex.xaml.cs): `MythKit/Pages/RestrictionsRemoving/RestrictionsRemovingIndex.xaml.cs`
- [Recovery settings](https://github.com/creepermpg/mythkit/blob/master/MythKit/Pages/RestrictionsRemoving/RecoverySettingsDialog.xaml.cs): `MythKit/Pages/RestrictionsRemoving/RecoverySettingsDialog.xaml.cs`
- [Native operations](https://github.com/creepermpg/mythkit/blob/master/MythKit/NativeMethods.cs): `MythKit/NativeMethods.cs`
- [Registry access](https://github.com/creepermpg/mythkit/blob/master/MythKit/Utils/RegUtils.cs): `MythKit/Utils/RegUtils.cs`

### Other components

- **User**
- **External caller**

## Connections

- User → WPF application: launches (evidence: `README.md`)
- WPF application → Single-instance relay: initializes (evidence: `MythKit/App.xaml.cs`)
- Single-instance relay → WPF application: notifies arguments (evidence: `MythKit/SingleInstanceManager.cs`)
- User → Home dashboard: views status (evidence: `README.md`)
- Home dashboard → Mythware process manager: discovers and refreshes (evidence: `MythKit/Pages/Home/HomeIndex.xaml.cs`)
- Mythware process manager → Registry access: reads install path (evidence: `MythKit/Mythware/MythwareInstance.cs`)
- Mythware process manager → Mythware state: updates state (evidence: `MythKit/Mythware/MythwareInstance.cs`)
- Home dashboard → Registry access: reads password (evidence: `MythKit/Pages/Home/HomeIndex.xaml.cs`)
- User → Restriction removal: uses (evidence: `README.md`)
- Restriction removal → Registry access: accesses registry (evidence: `MythKit/Pages/RestrictionsRemoving/RestrictionsRemovingIndex.xaml.cs`)
- Restriction removal → Native operations: uses native calls (evidence: `MythKit/Pages/RestrictionsRemoving/RestrictionsRemovingIndex.xaml.cs`)
- User → Recovery settings: configures recovery
- External caller → WPF application: invokes URI (evidence: `README.md`)
- WPF application → URI query parser: parses query (evidence: `MythKit/App.xaml.cs`)
- URI query parser → Attack configuration UI: provides attack parameters
- User → Attack configuration UI: configures attack (evidence: `README.md`)
- Attack configuration UI → Attack configuration: builds configuration (evidence: `MythKit/Pages/UDPAttack/AttackIndex.xaml.cs`)
- Attack configuration UI → Attack execution task: creates task (evidence: `MythKit/Pages/UDPAttack/AttackIndex.xaml.cs`)
- Attack configuration → Attack patterns: selects pattern (evidence: `MythKit/Pages/UDPAttack/AttackConfig.cs`)
- Attack patterns → Packet model: constructs packets (evidence: `MythKit/Pages/UDPAttack/IAttackPattern.cs`)
- Attack patterns → Attack target: declares target (evidence: `MythKit/Pages/UDPAttack/IAttackPattern.cs`)
- Attack execution task → Packet model: sends packets (evidence: `MythKit/Pages/UDPAttack/AttackManagedTask.cs`)
- Attack execution task → Task manager: runs as managed task (evidence: `MythKit/Pages/UDPAttack/AttackManagedTask.cs`)
- Attack execution task → Attack status controls: updates details (evidence: `MythKit/Pages/UDPAttack/AttackStateControl.xaml.cs`)
- Task manager → Task progress entry: creates entries (evidence: `MythKit/Tasks/TaskManager.cs`)
- Task progress entry → Task manager: reflects task updates (evidence: `MythKit/Tasks/TaskEntry.cs`)
- Task manager page → Task manager: displays and controls (evidence: `MythKit/Pages/TaskManager/TaskManagerIndex.xaml.cs`)
- User → Task manager page: manages tasks (evidence: `README.md`)
- User → About page: opens information (evidence: `README.md`)
