# 0x6e08715/wechatanalysis architecture

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

- Interactive diagram: https://gitdiagram.com/0x6e08715/wechatanalysis
- Repository: https://github.com/0x6e08715/wechatanalysis

## Overview

WeChatMsg is a Windows desktop tool for decrypting and exploring a user’s local WeChat data, analyzing conversations, and exporting chat and contact data. The main workflow starts in the desktop application, opens the main interface, and uses message data for chat viewing, analysis, and export. Separate UI areas support contacts and PC decryption. The README documents broader export formats and visual reports; those capabilities are represented by their source directories, but their internal wiring is not established by the sampled excerpts.

Main entry points: [`main.py`](https://github.com/0x6e08715/wechatanalysis/blob/master/main.py) (App entry), [`app/ui/mainview.py`](https://github.com/0x6e08715/wechatanalysis/blob/master/app/ui/mainview.py) (Main window), [`app/decrypt/decrypt.py`](https://github.com/0x6e08715/wechatanalysis/blob/master/app/decrypt/decrypt.py) (Database decryption), [`app/DataBase/msg.py`](https://github.com/0x6e08715/wechatanalysis/blob/master/app/DataBase/msg.py) (Message queries)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desktop["Desktop application"]
  node_main["App entry<br/>[main.py]"]
  node_mainview["Main window<br/>[mainview.py]"]
  node_chatui["Chat views"]
  node_contactui["Contact views"]
  node_decryptui["Decrypt tool<br/>[pc_decrypt.py]"]
end

subgraph group_data["Local data"]
  node_decrypt["Database decryption<br/>[decrypt.py]"]
  node_wxinfo["WeChat process info<br/>[get_wx_info.py]"]
  node_messages["Message queries<br/>[msg.py]"]
  node_message_db[("Message database<br/>[msg.py]")]
end

subgraph group_insights["Analysis and reports"]
  node_analysis["Conversation analysis<br/>[analysis.py]"]
  node_webreport["Web reports<br/>[web.py]"]
end

subgraph group_outputs["Export and contacts"]
  node_contacts["Contact models<br/>[person.py]"]
  node_exporter["Chat exporters<br/>[exporter.py]"]
  node_html_export["HTML export<br/>[exporter_html.py]"]
end

node_user(("User"))
node_wechat(("WeChat process"))
node_filesystem(("Local files"))

node_user -->|"launches"| node_main
node_main -->|"opens"| node_mainview
node_main -.->|"offers decryption"| node_decryptui
node_decryptui -->|"requests decryption"| node_decrypt
node_decrypt -->|"gets process data"| node_wxinfo
node_wxinfo -->|"reads process memory"| node_wechat
node_decrypt -->|"writes decrypted files"| node_filesystem
node_mainview -->|"opens chat views"| node_chatui
node_mainview -->|"opens contact views"| node_contactui
node_messages -->|"queries"| node_message_db
node_analysis -->|"requests message data"| node_messages
node_webreport -->|"requests chart data"| node_analysis
node_webreport -->|"requests message data"| node_messages
node_exporter -->|"uses HTML format"| node_html_export
node_html_export -->|"writes exported media"| node_filesystem
node_contacts -->|"saves avatars"| node_filesystem

click node_main "https://github.com/0x6e08715/wechatanalysis/blob/master/main.py"
click node_mainview "https://github.com/0x6e08715/wechatanalysis/blob/master/app/ui/mainview.py"
click node_chatui "https://github.com/0x6e08715/wechatanalysis/tree/master/app/ui/chat"
click node_contactui "https://github.com/0x6e08715/wechatanalysis/tree/master/app/ui/contact"
click node_decryptui "https://github.com/0x6e08715/wechatanalysis/blob/master/app/ui/tool/pc_decrypt/pc_decrypt.py"
click node_decrypt "https://github.com/0x6e08715/wechatanalysis/blob/master/app/decrypt/decrypt.py"
click node_wxinfo "https://github.com/0x6e08715/wechatanalysis/blob/master/app/decrypt/get_wx_info.py"
click node_messages "https://github.com/0x6e08715/wechatanalysis/blob/master/app/DataBase/msg.py"
click node_message_db "https://github.com/0x6e08715/wechatanalysis/blob/master/app/DataBase/msg.py"
click node_contacts "https://github.com/0x6e08715/wechatanalysis/blob/master/app/person.py"
click node_analysis "https://github.com/0x6e08715/wechatanalysis/blob/master/app/analysis/analysis.py"
click node_webreport "https://github.com/0x6e08715/wechatanalysis/blob/master/app/web_ui/web.py"
click node_exporter "https://github.com/0x6e08715/wechatanalysis/blob/master/app/util/exporter/exporter.py"
click node_html_export "https://github.com/0x6e08715/wechatanalysis/blob/master/app/util/exporter/exporter_html.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_mainview,node_chatui,node_contactui,node_decryptui,node_user toneBlue
class node_decrypt,node_wxinfo,node_messages,node_message_db toneAmber
class node_analysis,node_webreport toneMint
class node_contacts,node_exporter,node_html_export toneRose
class node_wechat,node_filesystem toneIndigo
```

## Components

### Desktop application

- [App entry](https://github.com/0x6e08715/wechatanalysis/blob/master/main.py): `main.py`
- [Main window](https://github.com/0x6e08715/wechatanalysis/blob/master/app/ui/mainview.py): `app/ui/mainview.py`
- [Chat views](https://github.com/0x6e08715/wechatanalysis/tree/master/app/ui/chat): `app/ui/chat`
- [Contact views](https://github.com/0x6e08715/wechatanalysis/tree/master/app/ui/contact): `app/ui/contact`
- [Decrypt tool](https://github.com/0x6e08715/wechatanalysis/blob/master/app/ui/tool/pc_decrypt/pc_decrypt.py): `app/ui/tool/pc_decrypt/pc_decrypt.py`

### Local data

- [Database decryption](https://github.com/0x6e08715/wechatanalysis/blob/master/app/decrypt/decrypt.py): `app/decrypt/decrypt.py`
- [WeChat process info](https://github.com/0x6e08715/wechatanalysis/blob/master/app/decrypt/get_wx_info.py): `app/decrypt/get_wx_info.py`
- [Message queries](https://github.com/0x6e08715/wechatanalysis/blob/master/app/DataBase/msg.py): `app/DataBase/msg.py`
- [Message database](https://github.com/0x6e08715/wechatanalysis/blob/master/app/DataBase/msg.py): `app/DataBase/msg.py`

### Analysis and reports

- [Conversation analysis](https://github.com/0x6e08715/wechatanalysis/blob/master/app/analysis/analysis.py): `app/analysis/analysis.py`
- [Web reports](https://github.com/0x6e08715/wechatanalysis/blob/master/app/web_ui/web.py): `app/web_ui/web.py`

### Export and contacts

- [Contact models](https://github.com/0x6e08715/wechatanalysis/blob/master/app/person.py): `app/person.py`
- [Chat exporters](https://github.com/0x6e08715/wechatanalysis/blob/master/app/util/exporter/exporter.py): `app/util/exporter/exporter.py`
- [HTML export](https://github.com/0x6e08715/wechatanalysis/blob/master/app/util/exporter/exporter_html.py): `app/util/exporter/exporter_html.py`

### Other components

- **User**
- **WeChat process**
- **Local files**

## Connections

- User → App entry: launches
- App entry → Main window: opens
- App entry → Decrypt tool: offers decryption
- Decrypt tool → Database decryption: requests decryption
- Database decryption → WeChat process info: gets process data
- WeChat process info → WeChat process: reads process memory
- Database decryption → Local files: writes decrypted files
- Main window → Chat views: opens chat views
- Main window → Contact views: opens contact views
- Message queries → Message database: queries
- Conversation analysis → Message queries: requests message data
- Web reports → Conversation analysis: requests chart data
- Web reports → Message queries: requests message data
- Chat exporters → HTML export: uses HTML format
- HTML export → Local files: writes exported media
- Contact models → Local files: saves avatars
