# owlsecx/ouacbypass architecture

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

- Interactive diagram: https://gitdiagram.com/owlsecx/ouacbypass
- Repository: https://github.com/owlsecx/ouacbypass

## Overview

OUACBypass is a Linux CLI reference and authorized-testing tool for Windows UAC configurations. Users can browse the offline technique catalog, inspect how-to/path information, analyze exported configuration files, and view or export findings. The main workflow is CLI input selection → file analysis → configuration scanning → rendered or exported results; demo analysis uses synthetic registry text. All runtime behavior is concentrated in one Go source file. The excerpt shows only portions of that file, so some documented features are represented without inferred internal call links.

Main entry points: [`OUACBypass.go`](https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go) (Findings and stats)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cli["CLI and interaction"]
  node_cli["CLI dispatcher<br/>[OUACBypass.go]"]
  node_menu["Interactive menus<br/>[OUACBypass.go]"]
  node_analyze_action["Analyze action<br/>[OUACBypass.go]"]
  node_catalog_action["Catalog mode<br/>[OUACBypass.go]"]
end

subgraph group_reference["Technique reference"]
  node_techniques["Technique catalog<br/>[OUACBypass.go]"]
  node_howto_lookup["How-to and path lookup<br/>[OUACBypass.go]"]
end

subgraph group_analysis["Configuration analysis"]
  node_input_file["Configuration export"]
  node_domain_analyze["Domain analysis<br/>[OUACBypass.go]"]
  node_config_scan["UAC config scanner<br/>[OUACBypass.go]"]
  node_demo["Synthetic demo<br/>[OUACBypass.go]"]
end

subgraph group_results["Findings and output"]
  node_findings["Findings and stats<br/>[OUACBypass.go]"]
  node_posture_grade["Posture grading<br/>[OUACBypass.go]"]
  node_result_render["Console rendering<br/>[OUACBypass.go]"]
  node_export_action["Export action<br/>[OUACBypass.go]"]
  node_export_formats["Result formats<br/>[OUACBypass.go]"]
  node_output_file["Export destination"]
end

node_user(("Authorized operator"))

node_user -->|"runs commands"| node_cli
node_cli -.->|"selects mode"| node_catalog_action
node_catalog_action -->|"prints catalog"| node_techniques
node_user -.->|"chooses action"| node_menu
node_menu -->|"dispatches"| node_analyze_action
node_analyze_action -->|"calls"| node_domain_analyze
node_input_file -.->|"provides path"| node_domain_analyze
node_domain_analyze -->|"scans contents"| node_config_scan
node_demo -->|"scans synthetic config"| node_config_scan
node_config_scan -->|"checks binaries"| node_techniques
node_config_scan -->|"produces"| node_findings
node_findings -->|"computes grade"| node_posture_grade
node_findings -->|"renders findings"| node_result_render
node_findings -->|"exports last result"| node_export_action
node_export_action -->|"formats result"| node_export_formats
node_export_action -->|"writes optionally"| node_output_file
node_techniques -.->|"supports lookup"| node_howto_lookup

click node_cli "https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go"
click node_menu "https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go"
click node_analyze_action "https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go"
click node_catalog_action "https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go"
click node_techniques "https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go"
click node_howto_lookup "https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go"
click node_domain_analyze "https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go"
click node_config_scan "https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go"
click node_demo "https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go"
click node_findings "https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go"
click node_posture_grade "https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go"
click node_result_render "https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go"
click node_export_action "https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go"
click node_export_formats "https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go"

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_cli,node_menu,node_analyze_action,node_catalog_action toneBlue
class node_techniques,node_howto_lookup toneAmber
class node_input_file,node_domain_analyze,node_config_scan,node_demo toneMint
class node_findings,node_posture_grade,node_result_render,node_export_action,node_export_formats,node_output_file toneRose
class node_user toneIndigo
```

## Components

### CLI and interaction

- [CLI dispatcher](https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go): `OUACBypass.go`
- [Interactive menus](https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go): `OUACBypass.go`
- [Analyze action](https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go): `OUACBypass.go`
- [Catalog mode](https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go): `OUACBypass.go`

### Technique reference

- [Technique catalog](https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go): `OUACBypass.go`
- [How-to and path lookup](https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go): `OUACBypass.go`

### Configuration analysis

- **Configuration export**
- [Domain analysis](https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go): `OUACBypass.go`
- [UAC config scanner](https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go): `OUACBypass.go`
- [Synthetic demo](https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go): `OUACBypass.go`

### Findings and output

- [Findings and stats](https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go): `OUACBypass.go`
- [Posture grading](https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go): `OUACBypass.go`
- [Console rendering](https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go): `OUACBypass.go`
- [Export action](https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go): `OUACBypass.go`
- [Result formats](https://github.com/owlsecx/ouacbypass/blob/main/OUACBypass.go): `OUACBypass.go`
- **Export destination**

### Other components

- **Authorized operator**

## Connections

- Authorized operator → CLI dispatcher: runs commands (evidence: `README.md`)
- CLI dispatcher → Catalog mode: selects mode (evidence: `OUACBypass.go`)
- Catalog mode → Technique catalog: prints catalog (evidence: `OUACBypass.go`)
- Authorized operator → Interactive menus: chooses action
- Interactive menus → Analyze action: dispatches (evidence: `OUACBypass.go`)
- Analyze action → Domain analysis: calls (evidence: `OUACBypass.go`)
- Configuration export → Domain analysis: provides path
- Domain analysis → UAC config scanner: scans contents (evidence: `OUACBypass.go`)
- Synthetic demo → UAC config scanner: scans synthetic config (evidence: `OUACBypass.go`)
- UAC config scanner → Technique catalog: checks binaries (evidence: `OUACBypass.go`)
- UAC config scanner → Findings and stats: produces (evidence: `OUACBypass.go`)
- Findings and stats → Posture grading: computes grade (evidence: `OUACBypass.go`)
- Findings and stats → Console rendering: renders findings (evidence: `OUACBypass.go`)
- Findings and stats → Export action: exports last result (evidence: `OUACBypass.go`)
- Export action → Result formats: formats result (evidence: `OUACBypass.go`)
- Export action → Export destination: writes optionally (evidence: `OUACBypass.go`)
- Technique catalog → How-to and path lookup: supports lookup (evidence: `OUACBypass.go`)
