juice094/macro-virus-classroom-demo

GitHub: juice094/macro-virus-classroom-demo

一个基于 WebUI 与 oletools 的宏病毒教学演示项目,解决在离线环境中直观展示宏病毒原理、检测与清除的问题。

Stars: 0 | Forks: 0

# 宏病毒演示项目 · 翻转课堂 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/) [![oletools](https://img.shields.io/badge/oletools-0.60+-green.svg)](https://github.com/decalage2/oletools) [![PWA](https://img.shields.io/badge/PWA-Supported-purple.svg)]() ## 🚀 快速开始 ### 方式一:离线演示(推荐 · 无需任何环境) # 直接用浏览器打开 open webui/index.html # macOS start webui/index.html # Windows - 所有场景、动画、预置检测数据均已**内嵌** - 支持 **PWA 离线安装**(Chrome/Edge 地址栏点击 ➕ 安装到桌面) - 适配教室断网、无管理员权限环境 **操作快捷键**: - `→` / `←` :切换场景 - `F11` :全屏演示 - `Tab` :键盘焦点导航 ### 方式二:实时检测演示(需 Python) cd backend python -m venv .venv source .venv/bin/activate # Linux/macOS # .venv\Scripts\activate # Windows pip install -r requirements.txt python app.py 浏览器访问 `http://127.0.0.1:5000`,可上传 `.doc/.docm/.xls/.xlsm` 等文件查看 **oletools** 实时分析结果。 ## 📁 项目结构 macro-virus-classroom-demo/ ├── 📂 webui/ # 前端 · 纯 HTML/CSS/JS(零构建) │ ├── index.html # 单页应用:9 场景交互演示 │ ├── style.css # 设计令牌 + 情绪曲线 + SVG 动画 │ ├── app.js # State Machine + 粒子流 + API 连接 │ ├── manifest.json # PWA 安装配置 │ └── sw.js # Service Worker 离线缓存 │ ├── 📂 backend/ # 后端 · Flask + oletools │ ├── app.py # 文件上传 + olevba/mraptor/oleid 封装 │ └── requirements.txt # Python 依赖 │ ├── 📂 docs/ │ └── script.md # 课堂讲解逐字稿(7 分钟精确到秒) │ ├── 📄 DESIGN.md # 完整设计方案(6 步骤论证) ├── 📄 ASSESSMENT.md # 美学 + 工程学评估与不足映射 ├── 📄 LICENSE # MIT └── 📄 .gitignore ## 🎬 场景导览 | 场景 | 内容 | 交互亮点 | 情绪色彩 | |------|------|---------|---------| | S0 | 开场:财务小李收到钓鱼邮件 | 邮件 UI 模拟 | 🔵 中性 | | S1 | 定义:宏病毒 80 字定义 | 3D 翻转卡片 | 🔵 中性 | | S2 | 传播:四大途径 | SVG 脉冲节点网络 | 🟠 警示 | | S3 | 原理:AutoOpen → 感染模板 | **渐进披露**(点击展开代码) | 🔴 危机 | | **S4** | **感染链路(重点)** | **SVG 粒子流动画** | 🔴 危机 | | S5 | 检测:oletools 实时分析 | 标签页 + MacroRaptor 评级 | 🟣 分析 | | S6 | 清除:四步法 | **步骤聚焦**(单步高亮) | 🟢 安全 | | S7 | 延伸:变异与 AI 钓鱼 | 可展开 QA | 🔵 中性 | | S8 | 总结:安全意识口诀 | 打字机 + 护盾徽章 | 🟢 安全 | ## 🧠 设计理论 本项目基于以下成熟理论构建: - **格式塔原理**(Wertheimer, 1912):接近律分组、连续律过渡、共同命运律粒子流 - **认知负荷理论**(Sweller, 1988):渐进披露降低外在认知负荷 - **情感化设计三层模型**(Norman, 2004):本能/行为/反思层情绪曲线 - **离线优先架构**(Local-first):Service Worker + Cache API - **可访问性 WCAG 2.1**:ARIA、键盘导航、减少动画媒体查询 详见 [`ASSESSMENT.md`](./ASSESSMENT.md)。 ## 🛡️ 安全声明 - 本项目**不包含任何可执行的恶意代码**。 - `S3` 中展示的 VBA 代码为**无害化教学片段**,仅说明逻辑,不具备实际感染能力。 - `S5` 中的"预置样本分析结果"为模拟数据,用于课堂无网络环境下的流畅演示。 - 如需分析真实可疑文档,请在**隔离环境**中使用 `backend/app.py`,且**不要启用文档中的宏**。 ## 📋 课堂部署建议 1. **课前**:将 `webui/` 文件夹复制到教室电脑桌面。 2. **演示**:双击 `index.html` → `F11` 全屏 → 按 `→` 键切换场景。 3. **备用**:若教室有 Python 环境,提前启动 `backend/app.py`,可演示实时文件分析。 4. **讲解**:参照 [`docs/script.md`](./docs/script.md) 逐字稿,严格控制在 **5-8 分钟** 内。 ## 📄 License [MIT](LICENSE) © 2026 juice094
标签:Flask, Office宏, Oletools, PWA, Python教学, Service Worker, TCP SYN 扫描, Web UI, 交互式演示, 关键词:宏病毒, 关键词:教学工具, 关键词:网络安全演示, 前端纯HTML, 多模态安全, 安全教育, 宏病毒, 实时检测, 恶意文档分析, 搜索引擎优化, 教学演示, 数据可视化, 文件上传分析, 病毒演示, 离线支持, 网络安全教育, 翻转课堂, 自定义脚本, 逆向工具