tue3306/TrellixEDR
GitHub: tue3306/TrellixEDR
为 Trellix Command Line Scanner 打造的 Windows 图形化前端,提供扫描管理、仪表盘、威胁处置与多格式报告导出功能。
Stars: 1 | Forks: 0
# Trellix EDR Console
**一个为 Trellix Command Line Scanner 打造的全功能图形控制台。**
扫描、仪表盘、图表和报告——无需打开命令提示符。
[](https://www.python.org/)
[](https://doc.qt.io/qtforpython/)
[](https://www.sqlite.org/)
[](#系统要求)
[](LICENSE)
[](https://github.com/tue3306/TrellixEDR/actions/workflows/ci.yml)
[](https://github.com/tue3306/TrellixEDR/releases)
[](https://github.com/tue3306/TrellixEDR/releases)
[](https://github.com/tue3306/TrellixEDR/commits/main)
[](https://github.com/tue3306/TrellixEDR/issues)
[](https://github.com/tue3306/TrellixEDR/stargazers)
[](https://docs.astral.sh/ruff/)
[](tests/)
| 1 | **前往 [**Releases**](https://github.com/tue3306/TrellixEDR/releases/latest) 下载** —— 从以下两个选项中选择一个: | 文件 | 说明 | |---------|---------| | `TrellixEDR-1.0.1-setup.exe` | **安装版** —— 创建快捷方式,并出现在“已安装的应用”中 | | `TrellixEDR-1.0.1-windows-x64.zip` | **便携版** —— 解压即可运行,无需安装任何内容 | |
| 2 | **运行。** 如果是安装版,双击并点击下一步。 如果是便携版,解压文件夹并双击 **`TrellixEDR.exe`**。 |
| 3 | **安装扫描引擎** —— 从 Trellix 下载两个免费文件,大约需要 5 分钟。 👉 [**点击此处查看详细步骤**](docs/CONFIGURAR_SCANNER.md) |
| 4 | **打开控制台**并点击*快速扫描*。 |
### 仪表盘
查看所有界面
### 威胁中心
### 扫描历史
### 统计数据
### 快速扫描
### 自定义扫描
### 报告
### 磁盘清理
### 日志
### 设置
### 关于
PySide6"] CORE["core/ — casos de uso
orquestrador, serviços"] SCANNER["scanner/ — adaptador do scan.exe
comando, parsers, exit codes"] DB["database/ — SQLite
um repositório por tabela"] MODELS["models/ — dataclasses puras
sem Qt, sem I/O"] EXE["scan.exe
Trellix Command Line Scanner"] REPORTS["reports/ + charts/
PDF, HTML, CSV, JSON"] UI --> CORE CORE --> SCANNER CORE --> DB CORE --> REPORTS SCANNER -->|subprocess| EXE EXE -->|"/LOUD no stdout"| SCANNER EXE -->|"relatório XML + JSON"| SCANNER SCANNER --> MODELS DB --> MODELS REPORTS --> MODELS ``` 界面**仅**与 `core/` 通信。模型是纯粹的:它们既不了解 Qt 也不了解数据库。并且系统的任何部分都不会在 `scanner/trellix_scanner.py` 之外执行 `scan.exe`。 ### 结果获取方式 ``` sequenceDiagram participant U as Usuário participant P as Página de varredura participant W as ScanWorker (QThread) participant S as scan.exe participant B as SQLite U->>P: inicia a varredura P->>W: cria e conecta os sinais W->>S: subprocess com /LOUD /XMLPATH /JSONPATH loop enquanto varre S-->>W: linhas do /LOUD W-->>P: progresso (arquivos, velocidade, ETA) end S-->>W: código de saída W->>W: lê o XML (JSON como plano B) W->>W: calcula MD5, SHA1 e SHA256 W->>B: grava tudo em uma transação W-->>P: finished_scan(scan_id) P->>B: reconsulta somente leitura ``` 有两个数据源,各自扮演着不同且明确设定的角色: - **stdout 中的 `/LOUD`** **仅**用于提供进度指示。其格式并未被制造商记录在文档中,因此解析器具有容错性:无法识别的行会被记录到日志中并忽略——它们绝不会导致扫描崩溃,也绝不会进入数据库。 - **XML 报告**(`/XMLPATH` + `/RPTALL`)是**唯一事实来源**。它遵循产品指南中发布的正式 schema,并为数据库、图表和报告提供数据。 - **JSON 报告**是**备用方案**:如果 XML 被截断或格式错误,扫描结果将通过 JSON 恢复,而不是被直接丢弃。 ### 项目结构 ``` TrellixEDR/ ├── main.py Ponto de entrada ├── models/ Dataclasses e enums do domínio (sem Qt, sem I/O) ├── config/ Caminhos, constantes, tema e perfis de varredura ├── database/ Conexão SQLite, schema e um repositório por tabela ├── scanner/ Adaptador do scan.exe: localizador, comando, │ parsers, códigos de saída e worker em QThread ├── core/ Casos de uso consumidos pela interface ├── ui/ Janela, sidebar, páginas, widgets e modelos de tabela ├── charts/ Funções puras de desenho + telas matplotlib ├── reports/ Construtores de PDF, HTML, CSV e JSON ├── utils/ Logging, hashes, formatação, validação e processos ├── resources/styles/ Folha de estilo do tema escuro ├── assets/ Ícone e capturas de tela ├── docs/ Documentação completa ├── examples/ Relatórios de exemplo gerados pela aplicação ├── installer/ Inno Setup, NSIS e scripts de geração ├── scripts/ Build, release, ícone, capturas e dados de demonstração ├── tests/ Suíte de verificação (19 scripts) ├── vendor/ Componentes do Trellix (você baixa; não versionado) └── .github/ CI/CD, templates de issue e de PR ``` 包含约 **16,600 行 Python 代码**,分布在 127 个文件中,其中 2,700 行为测试代码。 ## 🧪 测试 ``` python tests/run_all.py ``` 共有 **19 个脚本**,旨在针对真实行为(而非 mock)测试应用程序:数据库和存储库、七种配置文件的标志构建、针对**真实二进制文件输出**的 XML 和 JSON 解析器、完整的 worker 流水线、XML 损坏时的恢复、进度和剩余时间、文档记录的十一种退出代码、报告的保留和截断、四种格式的生成、表格排序、磁盘清理的安全限制、菜单与页面的绑定、整个界面、**使用已安装的 `scan.exe` 进行真实扫描**、**实际应用到扫描器的排除项**以及**使用 EICAR 进行的真实检测**。 依赖于二进制文件的测试在未检测到该文件时会自动跳过,并显示清晰的消息——持续集成正是以此方式运行的。 ``` python -m ruff check . && python -m mypy charts config core database models reports scanner ui utils main.py ``` ## 🔬 真实二进制文件揭示的信息 解析器是针对 Trellix 7.0.6.1105(引擎 6900.11121,DAT 11856)的执行进行验证的。**产品文档在五点上与实际二进制文件存在分歧**,这些都是通过实践发现的,并已通过测试锁定: | 指南说明 | 二进制文件的实际行为 | |---|---| | `/ALLDRIVES` 扫描所有驱动器 | 二进制文件不识别这个名称。`scan.exe /?` 仅列出 `/AD`、`/ADL` 和 `/ADN` | | 表 10 列出了文件状态 | 存在一个额外的状态:`error not supported file.` —— 尽管有这个前缀,但它**并不是错误** | | `Total-files` 是文件计数 | 它可能**大于** `
**[⬆ 返回顶部](#trellix-edr-console)**
使用 Python、PySide6 和 Trellix 扫描引擎构建。
标签:PySide6, 图形界面, 系统运维, 逆向工具, 防病毒软件