# baklogr/kort architecture

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

## Overview

This repository is a Mythic Python container for the Kort Windows agent and its translation service. The main workflow imports both services, then starts Mythic’s service loop; Mythic can request a payload build, while the agent’s check-in constructs a binary message, sends it through C2, and the translator converts received protocol messages into Mythic actions. The tree also advertises a broader command set, but its handlers were not sampled. Some C runtime relationships are supported only by the SOURCE INDEX; transport and tasking details remain limited by the available excerpts.

Main entry points: [`agent_code/Checkin.c`](https://github.com/baklogr/kort/blob/main/agent_code/Checkin.c) (Check-in), [`agent_functions/builder.py`](https://github.com/baklogr/kort/blob/main/agent_functions/builder.py) (Payload Builder), [`main.py`](https://github.com/baklogr/kort/blob/main/main.py) (Service Entry), [`agent_code/Transport.c`](https://github.com/baklogr/kort/blob/main/agent_code/Transport.c) (HTTP Transport)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_container["Mythic Container"]
  node_service_entry["Service Entry<br/>[main.py]"]
  node_payload_builder["Payload Builder<br/>[builder.py]"]
end

subgraph group_agent["Kort Agent"]
  node_agent_entry["Agent Entry<br/>[Entry.c]"]
  node_runtime_config["Runtime Config<br/>[kort.c]"]
  node_checkin["Check-in<br/>[Checkin.c]"]
  node_transport["HTTP Transport<br/>[Transport.c]"]
  node_command_set["Agent Commands<br/>[config.h]"]
end

subgraph group_protocol["Protocol Translation"]
  node_translator["Kort Translator<br/>[translator.py]"]
  node_package["Package Codec<br/>[Package.c]"]
  node_parser["Response Parser<br/>[Parser.c]"]
end

subgraph group_support["Agent Internals"]
  node_agent_utils["Host Utilities<br/>[Utils.c]"]
  node_lazy_importer["Lazy Importer<br/>[lazy_importer.hpp]"]
end

node_mythic(("Mythic Server"))
node_rabbitmq["RabbitMQ"]
node_grpc["gRPC"]

node_service_entry -->|"imports"| node_payload_builder
node_service_entry -->|"imports"| node_translator
node_service_entry -->|"starts services"| node_mythic
node_mythic -.->|"requests builds"| node_payload_builder
node_payload_builder -->|"writes config"| node_runtime_config
node_agent_entry -->|"invokes"| node_checkin
node_agent_entry -->|"uses config"| node_runtime_config
node_checkin -->|"builds message"| node_package
node_checkin -->|"collects host data"| node_agent_utils
node_checkin -->|"sends package"| node_transport
node_transport -.->|"parses response"| node_parser
node_transport -.->|"communicates over HTTP"| node_mythic
node_translator -->|"translates messages"| node_mythic
node_mythic -->|"connects via"| node_grpc
node_command_set -.->|"enables commands"| node_agent_entry
node_package -.->|"uses"| node_lazy_importer
node_parser -->|"uses"| node_lazy_importer
node_agent_utils -->|"uses"| node_lazy_importer
node_mythic -->|"connects via"| node_rabbitmq
node_rabbitmq -.->|"services payloads"| node_payload_builder

click node_service_entry "https://github.com/baklogr/kort/blob/main/main.py"
click node_payload_builder "https://github.com/baklogr/kort/blob/main/agent_functions/builder.py"
click node_translator "https://github.com/baklogr/kort/blob/main/translator/translator.py"
click node_agent_entry "https://github.com/baklogr/kort/blob/main/agent_code/Entry.c"
click node_runtime_config "https://github.com/baklogr/kort/blob/main/agent_code/kort.c"
click node_checkin "https://github.com/baklogr/kort/blob/main/agent_code/Checkin.c"
click node_package "https://github.com/baklogr/kort/blob/main/agent_code/Package.c"
click node_transport "https://github.com/baklogr/kort/blob/main/agent_code/Transport.c"
click node_parser "https://github.com/baklogr/kort/blob/main/agent_code/Parser.c"
click node_agent_utils "https://github.com/baklogr/kort/blob/main/agent_code/Utils.c"
click node_lazy_importer "https://github.com/baklogr/kort/blob/main/agent_code/include/lazy_importer.hpp"
click node_command_set "https://github.com/baklogr/kort/blob/main/agent_code/include/config.h"

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_service_entry,node_payload_builder toneBlue
class node_agent_entry,node_runtime_config,node_checkin,node_transport,node_command_set toneAmber
class node_translator,node_package,node_parser,node_mythic toneMint
class node_agent_utils,node_lazy_importer toneRose
class node_rabbitmq,node_grpc toneIndigo
```

## Components

### Mythic Container

- [Service Entry](https://github.com/baklogr/kort/blob/main/main.py): `main.py`
- [Payload Builder](https://github.com/baklogr/kort/blob/main/agent_functions/builder.py): `agent_functions/builder.py`

### Kort Agent

- [Agent Entry](https://github.com/baklogr/kort/blob/main/agent_code/Entry.c): `agent_code/Entry.c`
- [Runtime Config](https://github.com/baklogr/kort/blob/main/agent_code/kort.c): `agent_code/kort.c`
- [Check-in](https://github.com/baklogr/kort/blob/main/agent_code/Checkin.c): `agent_code/Checkin.c`
- [HTTP Transport](https://github.com/baklogr/kort/blob/main/agent_code/Transport.c): `agent_code/Transport.c`
- [Agent Commands](https://github.com/baklogr/kort/blob/main/agent_code/include/config.h): `agent_code/include/config.h`

### Protocol Translation

- [Kort Translator](https://github.com/baklogr/kort/blob/main/translator/translator.py): `translator/translator.py`
- [Package Codec](https://github.com/baklogr/kort/blob/main/agent_code/Package.c): `agent_code/Package.c`
- [Response Parser](https://github.com/baklogr/kort/blob/main/agent_code/Parser.c): `agent_code/Parser.c`

### Agent Internals

- [Host Utilities](https://github.com/baklogr/kort/blob/main/agent_code/Utils.c): `agent_code/Utils.c`
- [Lazy Importer](https://github.com/baklogr/kort/blob/main/agent_code/include/lazy_importer.hpp): `agent_code/include/lazy_importer.hpp`

### Other components

- **Mythic Server**
- **RabbitMQ**
- **gRPC**

## Connections

- Service Entry → Payload Builder: imports (evidence: `main.py`)
- Service Entry → Kort Translator: imports (evidence: `main.py`)
- Service Entry → Mythic Server: starts services (evidence: `main.py`)
- Mythic Server → Payload Builder: requests builds
- Payload Builder → Runtime Config: writes config (evidence: `agent_functions/builder.py`)
- Agent Entry → Check-in: invokes (evidence: `agent_code/Entry.c`)
- Agent Entry → Runtime Config: uses config (evidence: `agent_code/Entry.c`)
- Check-in → Package Codec: builds message (evidence: `agent_code/Checkin.c`)
- Check-in → Host Utilities: collects host data (evidence: `agent_code/Checkin.c`)
- Check-in → HTTP Transport: sends package (evidence: `agent_code/Checkin.c`)
- HTTP Transport → Response Parser: parses response
- HTTP Transport → Mythic Server: communicates over HTTP
- Kort Translator → Mythic Server: translates messages (evidence: `translator/translator.py`)
- Mythic Server → gRPC: connects via (evidence: `README.md`)
- Agent Commands → Agent Entry: enables commands
- Package Codec → Lazy Importer: uses
- Response Parser → Lazy Importer: uses (evidence: `agent_code/Parser.c`)
- Host Utilities → Lazy Importer: uses (evidence: `agent_code/Utils.c`)
- Mythic Server → RabbitMQ: connects via (evidence: `README.md`)
- RabbitMQ → Payload Builder: services payloads (evidence: `README.md`)
