mishu1507/HexPose
GitHub: mishu1507/HexPose
一款 Chrome 扩展,在浏览器本地拦截并分析下载文件中的恶意软件和漏洞利用载荷,所有检测均在设备端完成。
Stars: 0 | Forks: 0
# HexPose - 通用文件恶意软件扫描程序
一款 Chrome 扩展程序,可拦截所有网站上的文件,并在您打开它们**之前**扫描其中的恶意软件、漏洞利用程序和可疑 payload。所有分析均在您的浏览器中本地运行 - 文件字节绝不会离开您的设备。

## 快速入门
### 1. 加载扩展程序
1. 打开 Chrome 并访问 `chrome://extensions`
2. 启用**开发者模式**(右上角的切换开关)
3. 点击**加载已解压的扩展程序**
4. 选择 `HexPose` 文件夹
5. ⬡ 图标将出现在您的工具栏中 - 您已准备就绪
### 2. 获取免费的 VirusTotal API 密钥(可选)
1. 在 [virustotal.com](https://www.virustotal.com/gui/join-us) 注册(免费)
2. 转到您的个人资料 → API Key
3. 复制该密钥
4. 打开 HexPose 弹出窗口 → **设置**标签页 → 粘贴密钥 → **保存**
5. 免费额度:每天 500 次查询,每分钟 4 次 - 足够个人使用
## 功能介绍
| 功能 | 实现方式 |
|---|---|
| **手动扫描** | 将任何文件拖拽到弹出窗口中或点击浏览 |
| **下载拦截** | 通过 `chrome.downloads` API 自动扫描所有下载 |
| **文件链接扫描** | 在每个页面的文件链接旁注入扫描按钮 |
| **上传拦截** | 通过 `` 上传可疑文件前发出警告 |
| **拖拽支持** | 全局拖拽监听器可捕获拖拽到任何页面上的文件 |
| **VirusTotal 查询** | 使用 70 多个杀毒引擎检查 SHA-256 哈希值(需要 API 密钥) |
| **扫描历史** | 在本地存储最近 100 次扫描记录 |
## 文件结构
```
HexPose/
├── manifest.json # Chrome MV3 manifest
├── background/
│ └── service-worker.js # Download interceptor, analysis runner, message router
├── analysis/
│ ├── file-analyzer.js # Core static analysis engine (magic bytes, entropy, PDF/Office/shellcode checks)
│ └── hash-checker.js # VirusTotal v3 API hash lookup with session cache
├── content/
│ └── universal-scanner.js # Content script: link injection, file input, drop, MutationObserver
├── popup/
│ ├── popup.html # 3-tab UI: Scan, History, Settings
│ ├── popup.css # Dark theme styles
│ └── popup.js # Popup interaction logic
├── styles/
│ └── scan-overlay.css # Injected on all pages (hexpose- prefixed)
├── lib/
│ └── spark-md5.js # MD5 hashing (VirusTotal requires MD5)
├── icons/
│ ├── icon16.png
│ ├── icon48.png
│ └── icon128.png
└── README.md
```
## 静态分析引擎
`FileAnalyzer` 完全在浏览器中运行,不进行任何网络调用:
**文件识别**
- Magic byte 检测:PDF、PE/EXE、ELF、ZIP/DOCX、RAR、OLE/CFB、RTF、7z、Mach-O、Java CLASS
- 扩展名不匹配检测(例如,包含 EXE magic byte 的 `.pdf` 文件)
- 双重扩展名检测(例如,`invoice.pdf.exe`)
- 危险扩展名黑名单(40 多种扩展名)
**Entropy 分析**
- 对所有字节进行 Shannon entropy 分析 - 将大于 7.5 的值标记为可能被加壳/加密
**PDF 检查**(13 种模式)
- `/JavaScript`、`/JS`、`/OpenAction`、`/AA`、`/Launch`、`/SubmitForm`、`/ImportData`
- `/EmbeddedFile`、`/XFA`、`/ObjStm`、`/JBIG2Decode`、`/GoToR`、`/GoToE`、`/Flash`
- 大型十六进制编码字符串
**Office 文档检查**
- VBA 宏:`Auto_Open`、`Document_Open`、`Workbook_Open`、`AutoExec`
- 执行:`Shell()`、`WScript`、`CreateObject`、`.Run()`、PowerShell、`cmd.exe`
- DDE/DDEAUTO、公式编辑器 (CVE-2017-11882)、OLE Package
- 混淆:`Chr()`、`StrReverse`
**Shellcode 启发式检测**
- NOP 雪橇(连续 10 个以上的 `0x90`)
- XOR 寄存器模式(`XOR EAX,EAX`)
- CALL+POP / JMP SHORT+POP(位置无关代码)
- PUSH+RET 序列
**混淆检测**
- `eval()`、`fromCharCode()`、`atob()`、`unescape()`
- 长十六进制/Unicode 转义序列
**网络指标**
- 直接 IP URL、URL 缩短器、粘贴站点引用
- `cmd.exe`、`powershell -enc` 引用
- 可疑 TLD
## 风险评分
| 严重性 | 分数 | 示例 |
|---|---|---|
| 严重 | +40 | 可执行文件伪装成文档、PDF 中的 /Launch、Auto_Open 宏 |
| 高 | +25 | 文件类型不匹配、NOP 雪橇、eval()、直接 IP URL |
| 中 | +15 | /ObjStm、URL 缩短器、偏高的 entropy |
| 低 | +5 | 次要的启发式标记 |
多项发现会叠加计算。分数上限为 100。VirusTotal 最多可在此基础上额外增加 +50 分。
| 分数 | 结论 | UI |
|---|---|---|
| 0–14 | 安全 | ✅ 绿色 |
| 15–39 | 注意 | ⚡ 黄色 |
| 40–69 | 可疑 | ⚠️ 橙色 |
| 70–100 | 恶意 | 🚨 红色 + 通知 |
## 设置
| 设置项 | 默认值 | 描述 |
|---|---|---|
| 自动扫描下载 | ✅ 开启 | 自动扫描每次下载 |
| 拦截恶意文件 | ❌ 关闭 | 取消评分 ≥70 的下载 |
| 通知 | ✅ 开启 | 判定为恶意时发出桌面通知 |
| VT API 密钥 | — | 您的免费 VirusTotal API 密钥 |
## 已知限制
- **需要身份验证的 URL**:位于登录页面(Google Drive、SharePoint)背后的文件在被扩展程序获取时会返回 403。对于这些文件,请先下载文件,然后通过弹出窗口手动扫描。
- **Service worker 文件访问**:MV3 service worker 在下载后无法读取本地 `file://` 路径。扩展程序会从原始 URL 重新获取;如果该 URL 需要身份验证或是临时的,字节级分析可能无法进行。
- **大文件**:超过 50 MB 的文件将跳过完整分析,以避免内存问题。
- **误报**:经过压缩的 JavaScript、压缩的资产以及合法混淆但干净的文件可能会触发中等严重程度的警告。请检查具体发现以进行判断。
- **VT 频率限制**:免费额度为每分钟 4 个请求,每天 500 个。每个会话都会缓存结果以尽量减少使用量。
## 技术栈
| 层级 | 选型 |
|---|---|
| 扩展程序 | Chrome Manifest V3 (service worker) |
| 文件解析 | 原生 `Uint8Array` + `TextDecoder` |
| SHA-256 / SHA-1 | `crypto.subtle.digest` (Web Crypto API) |
| MD5 | spark-md5(本地打包) |
| 存储 | `chrome.storage.local` |
| 外部 API | VirusTotal v3 REST(可选) |
## 许可证
MIT
标签:Ask搜索, Chrome 扩展, CMS安全, DeepSeek, DNS枚举, Exploit 检测, Go语言工具, JavaScript, Office 宏检测, PDF 安全, SHA-256, Shellcode 检测, VirusTotal, WebExtensions, 下载保护, 云安全监控, 客户端扫描, 恶意软件扫描, 数据可视化, 数据防泄露, 文件安全, 本地分析, 熵值分析, 病毒扫描, 网络信息收集, 网络安全, 网络安全工具, 自定义脚本, 隐私保护, 零上传, 静态分析, 魔数检测