# osmanonurkoc/secureapplocker architecture

> Architecture diagram of the GitHub repository osmanonurkoc/secureapplocker, 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/osmanonurkoc/secureapplocker
- Repository: https://github.com/osmanonurkoc/secureapplocker

## Overview

SecureAppLocker is a Windows application locker: the Manager configures protected apps and security settings, the SYSTEM service watches processes and applies lock rules, and the separate UI receives prompts, verifies unlock requests through named pipes, and launches approved apps. The README also documents trusted exceptions, audit logs, system-tools hardening, timed/global unlocks, recovery and session resets. Edges reflect only calls or named-pipe relationships visible in excerpts; other documented capabilities are retained where their implementation was not sampled.

Main entry points: [`SecureAppLocker.Service/Worker.cs`](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Service/Worker.cs) (Process interception), [`SecureAppLocker.Manager/MainWindow.xaml.cs`](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Manager/MainWindow.xaml.cs) (Manager dashboard), [`SecureAppLocker.UI/MainWindow.xaml.cs`](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.UI/MainWindow.xaml.cs) (Password prompt), [`SecureAppLocker.Core/ConfigManager.cs`](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Core/ConfigManager.cs) (Config storage and IPC)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_management["Management"]
  node_manager["Manager dashboard<br/>[MainWindow.xaml.cs]"]
  node_hardening["System tools hardening<br/>[MainWindow.xaml.cs]"]
  node_recovery["Offline recovery<br/>[MainWindow.xaml.cs]"]
end

subgraph group_enforcement["Service enforcement"]
  node_process_watch["Process interception<br/>[Worker.cs]"]
  node_parent_validation["Parent validation<br/>[Worker.cs]"]
  node_exceptions["Trusted exceptions<br/>[Worker.cs]"]
  node_service_pipes["Service IPC handlers<br/>[Worker.cs]"]
  node_service_host["Windows service host<br/>[Program.cs]"]
end

subgraph group_prompt["Unlock prompt"]
  node_prompt_listener["Prompt listener<br/>[App.xaml.cs]"]
  node_password_prompt["Password prompt<br/>[MainWindow.xaml.cs]"]
end

subgraph group_shared["Shared security"]
  node_config["Configuration model<br/>[LockerConfig.cs]"]
  node_config_manager["Config storage and IPC<br/>[ConfigManager.cs]"]
  node_crypto["Local data protection<br/>[CryptoHelper.cs]"]
  node_audit[("Audit logging<br/>[LogManager.cs]")]
end

node_user(("Computer user"))
node_windows["Windows process and session APIs"]

node_user -->|"configures locks"| node_manager
node_manager -->|"saves settings"| node_config_manager
node_config_manager -->|"serializes"| node_config
node_config_manager -->|"protects defaults"| node_crypto
node_manager -->|"enables controls"| node_hardening
node_manager -->|"manages recovery"| node_recovery
node_service_host -->|"hosts worker"| node_process_watch
node_process_watch -->|"checks ancestry"| node_parent_validation
node_process_watch -->|"checks trust rules"| node_exceptions
node_process_watch -.->|"scans processes"| node_windows
node_service_pipes -->|"sends trigger"| node_prompt_listener
node_prompt_listener -->|"updates prompt"| node_password_prompt
node_password_prompt -->|"sends unlock"| node_service_pipes
node_password_prompt -->|"launches approved app"| node_windows
node_service_pipes -.->|"receives config"| node_config_manager
node_service_pipes -.->|"uses settings"| node_config
node_process_watch -->|"records events"| node_audit
node_manager -.->|"reviews logs"| node_audit
node_user -->|"enters password"| node_password_prompt
node_process_watch -.->|"enforces protected tools"| node_hardening
node_windows -.->|"signals session lock"| node_process_watch

click node_manager "https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Manager/MainWindow.xaml.cs"
click node_process_watch "https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Service/Worker.cs"
click node_parent_validation "https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Service/Worker.cs"
click node_exceptions "https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Service/Worker.cs"
click node_hardening "https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Manager/MainWindow.xaml.cs"
click node_service_pipes "https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Service/Worker.cs"
click node_prompt_listener "https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.UI/App.xaml.cs"
click node_password_prompt "https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.UI/MainWindow.xaml.cs"
click node_config "https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Core/LockerConfig.cs"
click node_config_manager "https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Core/ConfigManager.cs"
click node_crypto "https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Core/CryptoHelper.cs"
click node_audit "https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Core/LogManager.cs"
click node_recovery "https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Manager/MainWindow.xaml.cs"
click node_service_host "https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Service/Program.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_manager,node_hardening,node_recovery,node_user toneBlue
class node_process_watch,node_parent_validation,node_exceptions,node_service_pipes,node_service_host toneAmber
class node_prompt_listener,node_password_prompt,node_windows toneMint
class node_config,node_config_manager,node_crypto,node_audit toneRose
```

## Components

### Management

- [Manager dashboard](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Manager/MainWindow.xaml.cs): `SecureAppLocker.Manager/MainWindow.xaml.cs`
- [System tools hardening](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Manager/MainWindow.xaml.cs): `SecureAppLocker.Manager/MainWindow.xaml.cs`
- [Offline recovery](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Manager/MainWindow.xaml.cs): `SecureAppLocker.Manager/MainWindow.xaml.cs`

### Service enforcement

- [Process interception](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Service/Worker.cs): `SecureAppLocker.Service/Worker.cs`
- [Parent validation](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Service/Worker.cs): `SecureAppLocker.Service/Worker.cs`
- [Trusted exceptions](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Service/Worker.cs): `SecureAppLocker.Service/Worker.cs`
- [Service IPC handlers](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Service/Worker.cs): `SecureAppLocker.Service/Worker.cs`
- [Windows service host](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Service/Program.cs): `SecureAppLocker.Service/Program.cs`

### Unlock prompt

- [Prompt listener](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.UI/App.xaml.cs): `SecureAppLocker.UI/App.xaml.cs`
- [Password prompt](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.UI/MainWindow.xaml.cs): `SecureAppLocker.UI/MainWindow.xaml.cs`

### Shared security

- [Configuration model](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Core/LockerConfig.cs): `SecureAppLocker.Core/LockerConfig.cs`
- [Config storage and IPC](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Core/ConfigManager.cs): `SecureAppLocker.Core/ConfigManager.cs`
- [Local data protection](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Core/CryptoHelper.cs): `SecureAppLocker.Core/CryptoHelper.cs`
- [Audit logging](https://github.com/osmanonurkoc/secureapplocker/blob/main/SecureAppLocker.Core/LogManager.cs): `SecureAppLocker.Core/LogManager.cs`

### Other components

- **Computer user**
- **Windows process and session APIs**

## Connections

- Computer user → Manager dashboard: configures locks (evidence: `readme.md`)
- Manager dashboard → Config storage and IPC: saves settings (evidence: `SecureAppLocker.Manager/MainWindow.xaml.cs`)
- Config storage and IPC → Configuration model: serializes (evidence: `SecureAppLocker.Core/ConfigManager.cs`)
- Config storage and IPC → Local data protection: protects defaults (evidence: `SecureAppLocker.Core/ConfigManager.cs`)
- Manager dashboard → System tools hardening: enables controls (evidence: `SecureAppLocker.Manager/MainWindow.xaml.cs`)
- Manager dashboard → Offline recovery: manages recovery (evidence: `SecureAppLocker.Manager/MainWindow.xaml.cs`)
- Windows service host → Process interception: hosts worker (evidence: `SecureAppLocker.Service/Program.cs`)
- Process interception → Parent validation: checks ancestry (evidence: `SecureAppLocker.Service/Worker.cs`)
- Process interception → Trusted exceptions: checks trust rules (evidence: `SecureAppLocker.Service/Worker.cs`)
- Process interception → Windows process and session APIs: scans processes
- Service IPC handlers → Prompt listener: sends trigger (evidence: `SecureAppLocker.Service/Worker.cs`)
- Prompt listener → Password prompt: updates prompt (evidence: `SecureAppLocker.UI/App.xaml.cs`)
- Password prompt → Service IPC handlers: sends unlock (evidence: `SecureAppLocker.UI/MainWindow.xaml.cs`)
- Password prompt → Windows process and session APIs: launches approved app (evidence: `SecureAppLocker.UI/MainWindow.xaml.cs`)
- Service IPC handlers → Config storage and IPC: receives config (evidence: `SecureAppLocker.Service/Worker.cs`)
- Service IPC handlers → Configuration model: uses settings (evidence: `SecureAppLocker.Service/Worker.cs`)
- Process interception → Audit logging: records events (evidence: `SecureAppLocker.Service/Worker.cs`)
- Manager dashboard → Audit logging: reviews logs
- Computer user → Password prompt: enters password (evidence: `readme.md`)
- Process interception → System tools hardening: enforces protected tools
- Windows process and session APIs → Process interception: signals session lock
