sebastiancoronadev/DocCore
GitHub: sebastiancoronadev/DocCore
DocCore 是一款完全在内存中运行的多语言文档安全分析引擎,通过并行 YARA 扫描、PDF 解析和威胁检测来识别文档中的恶意内容。
Stars: 0 | Forks: 0
# 📄 DocCore · 核文
### 多层文档分析引擎 · 企业数据安全
[](https://www.codexstudiove.com)
[](https://github.com/sebastiancoronadev)
[](https://linkedin.com/in/sebastiancoronadev)
[](mailto:sebastiancorona@codexstudiove.com)
### 作者:
@sebastiancoronadev
@liangzhaodev
**Lead Security Architects** · [codexstudiove.com](https://www.codexstudiove.com)
**Huizhiyun Technologies Inc. · 汇智云科技股份有限公司 · Enterprise Data Solutions**
# 🇨🇳 中文
## 📋 项目概述
**DocCore (核文)** 是一个多层文档分析引擎,完全在内存中运行,不依赖外部数据库或图形界面。每个模块都使用最适合其特定功能的语言编写,优先考虑性能和准确性,而非技术同质性。
执行流程遵循集中编排模式,PowerShell 充当协调大脑,根据文件类型和请求的分析深度调用 Rust、Python、C++ 和 Node.js 中的专业模块。所有模块通过 stdout 使用 JSON 进行通信,允许替换任何组件而不影响系统的其余部分。
## 🏗️ 系统架构
```
┌────────────────────────────────────────────────────────────────────────────┐
│ DOCORE ORCHESTRATOR │
│ PowerShell │
├────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Rust │ │ Python │ │ C++ │ │ Node.js │ │
│ │ Binary │ │ Document │ │ Memory │ │ Script │ │
│ │ Scanner │ │ Analyzer │ │ Handler │ │ Analyzer │ │
│ │ Parallel │ │ PDF Parser │ │ Buffer │ │ Static │ │
│ │ YARA │ │ Metadata │ │ Operations │ │ Detection │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │ │
│ └─────────────────┼─────────────────┼─────────────────┘ │
│ │ │ │
│ ┌──────▼─────────────────▼───────┐ │
│ │ JSON Report Output │ │
│ │ Threat Level │ │
│ │ Suspicious Patterns │ │
│ └────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────────────────┘
```
## 🛠️ 技术栈
| 模块 | 语言 | 功能 |
|------|------|------|
| **编排器** | PowerShell | 协调、文件检测、威胁聚合 |
| **二进制扫描器** | Rust | 并行 YARA、哈希、熵分析 |
| **文档分析器** | Python | PDF 解析、元数据提取、JavaScript 检测 |
| **内存处理器** | C++ | 缓冲区操作、负载提取 |
| **脚本分析器** | Node.js | 静态代码分析、混淆检测 |
## 🔧 模块详解
### PowerShell 编排器
编排器管理每个分析的完整生命周期。调用 `Start-DocCoreScan` 时,会创建一个带有唯一标识符的隔离会话,封装所有结果。此会话不会持久化到磁盘,确保每次分析都是独立的且不留下痕迹。
**Magic Bytes 识别:** 检查文件的前八个字节以识别实际格式,忽略文件扩展名。识别的 Magic Bytes 包括 PDF、OLE2、Office Open XML、PE 可执行文件、ELF 二进制和 Mach-O。
**香农熵计算:** 分析文件中每个字节的频率分布。熵值高于 0.85 表示加密或压缩内容,低于 0.40 表示纯文本或源代码。
**威胁等级聚合:** YARA 模式检测贡献最多 40 分,高熵贡献 30 分,可疑流贡献 20 分。阈值:70+ = 严重,40-69 = 高,<40 = 低。
### Rust 二进制扫描器
利用 Rayon 库的并发能力,在所有可用 CPU 核心上自动分配工作。使用内存映射文件避免将完整文件加载到内存中,允许分析任何大小的文档,RAM 消耗恒定。
**并行哈希计算:** SHA-256、SHA-512 和 MD5 在单独的线程中同时计算。对于大文件,扫描器将数据分块并独立处理每个块,在现代化硬件上达到高达 1.5 GB/s 的处理速度。
**YARA 模式检测:** 在 Rust 中直接实现 YARA 语言子集。模式包括已知恶意软件签名如 PE 头、NOP sled shellcode、Base64 编码的 PowerShell 命令和 JavaScript 混淆模式。
**分区分析:** 将文件分割成 4096 字节块并计算每个块的局部熵。熵值高于 0.90 的区域标记为高度可疑。
### Python 文档分析器
实现 PDF 解析器,遍历文件内部结构以查找可疑对象。检查每个压缩流,使用 zlib 解压并分析其内容,寻找嵌入的 JavaScript、危险 API 调用和混淆模式。
**JavaScript 提取:** 使用专门的 regex 搜索 `/JavaScript`、`/JS`、`eval()`、`unescape()`、`String.fromCharCode` 和 `ActiveXObject` 等对象。
**元数据提取:** 提取作者、创建者、生产者、创建和修改日期。支持多种 PDF 字符串编码:UTF-8、UTF-16 Big Endian、UTF-16 Little Endian 和 ASCII。
**中文编码检测:** 在 0xE4-0xE9 范围内寻找多字节 UTF-8 字节序列,这是中文、日文和韩文字符的特征。
### C++ 内存处理器
直接在文件的二进制缓冲区上操作,允许在解释型语言中效率低下的低级操作。使用直接指针和地址算术以获得最大速度。
**元数据删除:** 逐字节遍历文件,识别标准 PDF 元数据键并将其从缓冲区中删除。
**Payload 提取:** 搜索嵌入可执行文件的二进制签名:MZ 头(PE)、0x7F454C46(ELF)和 0xCAFEBABE(Mach-O)。还使用 256 字节滑动窗口以 50% 重叠识别可能包含 shellcode 的高熵区域。
### Node.js 脚本分析器
将文件内容作为文本进行静态分析,搜索恶意代码模式,无论容器格式如何。即使它们位于 Python 模块已提取的压缩流中,也能检测 VBA 宏、嵌入脚本和 JavaScript 代码。
**可疑函数检测:** 维护包括 `eval()`、`ActiveXObject`、`WScript.Shell` 和 `String.fromCharCode` 等模式的数据库。
**混淆评分:** 评估平均行长度(过长的行表示压缩或混淆代码)、特殊字符比例(正常代码以字母数字为主)和长 Base64 字符串数量(常用于隐藏 payloads)。
**风险评估:** 结合混淆检测、可疑函数计数和文本内容的熵以产生最终分类。
## 🛡️ 安全设计原则
| 原则 | 描述 |
|------|------|
| **离线模式** | 信息不会离开系统 |
| **零数据库** | 消除攻击面 |
| **仅内存处理** | 磁盘上不留痕迹 |
| **会话隔离** | 防止分析之间的交叉污染 |
| **模块独立性** | 每个模块都可替换 |
| **JSON 通信** | 最简单的通用协议 |
## 🚀 使用方式
```
# 基本分析
Start-DocCoreScan -FilePath "document.pdf"
# 深度扫描
Start-DocCoreScan -FilePath "document.pdf" -DeepScan
# 剥离元数据
Start-DocCoreScan -FilePath "document.pdf" -StripMetadata
# 提取 Payloads
Start-DocCoreScan -FilePath "document.pdf" -ExtractPayloads
```
## 📄 许可证
版权所有 © 2026 **Huizhiyun Technologies Inc.** · **汇智云科技股份有限公司**
All Rights Reserved · 保留所有权利
# 🇺🇸 ENGLISH
## 📋 项目概述
**DocCore (核文)** 是一个多层文档分析引擎,完全在内存中运行,不依赖外部数据库或图形界面。每个模块都使用最适合其特定功能的语言编写,优先考虑性能和准确性,而非技术同质性。
执行流程遵循集中编排模式,PowerShell 充当协调大脑,根据文件类型和请求的分析深度调用 Rust、Python、C++ 和 Node.js 中的专业模块。所有模块通过 stdout 使用 JSON 进行通信,允许替换任何组件而不影响系统的其余部分。
## 🏗️ 系统架构
```
┌────────────────────────────────────────────────────────────────────────────┐
│ DOCORE ORCHESTRATOR │
│ PowerShell │
├────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Rust │ │ Python │ │ C++ │ │ Node.js │ │
│ │ Binary │ │ Document │ │ Memory │ │ Script │ │
│ │ Scanner │ │ Analyzer │ │ Handler │ │ Analyzer │ │
│ │ Parallel │ │ PDF Parser │ │ Buffer │ │ Static │ │
│ │ YARA │ │ Metadata │ │ Operations │ │ Detection │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │ │
│ └─────────────────┼─────────────────┼─────────────────┘ │
│ │ │ │
│ ┌──────▼─────────────────▼───────┐ │
│ │ JSON Report Output │ │
│ │ Threat Level │ │
│ │ Suspicious Patterns │ │
│ └────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────────────────┘
```
## 🛠️ 技术栈
| 模块 | 语言 | 功能 |
|--------|----------|----------|
| **编排器** | PowerShell | 协调、文件检测、威胁聚合 |
| **二进制扫描器** | Rust | 并行 YARA、哈希、熵分析 |
| **文档分析器** | Python | PDF 解析、元数据提取、JavaScript 检测 |
| **内存处理器** | C++ | 缓冲区操作、负载提取 |
| **脚本分析器** | Node.js | 静态代码分析、混淆检测 |
## 🔧 模块详解
### PowerShell 编排器
编排器管理每个分析的完整生命周期。调用 `Start-DocCoreScan` 时,会创建一个带有唯一标识符的隔离会话,封装所有结果。此会话不会持久化到磁盘,确保每次分析都是独立的且不留下痕迹。
**Magic Bytes 识别:** 检查文件的前八个字节以识别实际格式,忽略文件扩展名。识别的 Magic Bytes 包括 PDF、OLE2、Office Open XML、PE 可执行文件、ELF 二进制和 Mach-O。
**香农熵计算:** 分析文件中每个字节的频率分布。熵值高于 0.85 表示加密或压缩内容,低于 0.40 表示纯文本或源代码。
**威胁等级聚合:** YARA 模式检测贡献最多 40 分,高熵贡献 30 分,可疑流贡献 20 分。阈值:70+ = 严重,40-69 = 高,<40 = 低。
### Rust 二进制扫描器
利用 Rayon 库的并发能力,在所有可用 CPU 核心上自动分配工作。使用内存映射文件避免将完整文件加载到内存中,允许分析任何大小的文档,RAM 消耗恒定。
**并行哈希计算:** SHA-256、SHA-512 和 MD5 在单独的线程中同时计算。对于大文件,扫描器将数据分块并独立处理每个块,在现代化硬件上达到高达 1.5 GB/s 的处理速度。
**YARA 模式检测:** 在 Rust 中直接实现 YARA 语言子集。模式包括已知恶意软件签名如 PE 头、NOP sled shellcode、Base64 编码的 PowerShell 命令和 JavaScript 混淆模式。
**分区分析:** 将文件分割成 4096 字节块并计算每个块的局部熵。熵值高于 0.90 的区域标记为高度可疑。
### Python 文档分析器
实现 PDF 解析器,遍历文件内部结构以查找可疑对象。检查每个压缩流,使用 zlib 解压并分析其内容,寻找嵌入的 JavaScript、危险 API 调用和混淆模式。
**JavaScript 提取:** 使用专门的 regex 搜索 `/JavaScript`、`/JS`、`eval()`、`unescape()`、`String.fromCharCode` 和 `ActiveXObject` 等对象。
**元数据提取:** 提取作者、创建者、生产者、创建和修改日期。支持多种 PDF 字符串编码:UTF-8、UTF-16 Big Endian、UTF-16 Little Endian 和 ASCII。
**中文编码检测:** 在 0xE4-0xE9 范围内寻找多字节 UTF-8 字节序列,这是中文、日文和韩文字符的特征。
### C++ 内存处理器
直接在文件的二进制缓冲区上操作,允许在解释型语言中效率低下的低级操作。使用直接指针和地址算术以获得最大速度。
**元数据删除:** 逐字节遍历文件,识别标准 PDF 元数据键并将其从缓冲区中删除。
**Payload 提取:** 搜索嵌入可执行文件的二进制签名:MZ 头(PE)、0x7F454C46(ELF)和 0xCAFEBABE(Mach-O)。还使用 256 字节滑动窗口以 50% 重叠识别可能包含 shellcode 的高熵区域。
### Node.js 脚本分析器
将文件内容作为文本进行静态分析,搜索恶意代码模式,无论容器格式如何。即使它们位于 Python 模块已提取的压缩流中,也能检测 VBA 宏、嵌入脚本和 JavaScript 代码。
**可疑函数检测:** 维护包括 `eval()`、`ActiveXObject`、`WScript.Shell` 和 `String.fromCharCode` 等模式的数据库。
**混淆评分:** 评估平均行长度(过长的行表示压缩或混淆代码)、特殊字符比例(正常代码以字母数字为主)和长 Base64 字符串数量(常用于隐藏 payloads)。
**风险评估:** 结合混淆检测、可疑函数计数和文本内容的熵以产生最终分类。
## 🛡️ 安全设计原则
| 原则 | 描述 |
|-----------|-------------|
| **离线模式** | 信息不会离开系统 |
| **零数据库** | 消除攻击面 |
| **仅内存处理** | 磁盘上不留痕迹 |
| **会话隔离** | 防止分析之间的交叉污染 |
| **模块独立性** | 每个模块都可替换 |
| **JSON 通信** | 最简单的通用协议 |
## 🚀 使用方式
```
# 基础分析
Start-DocCoreScan -FilePath "document.pdf"
# 深度扫描
Start-DocCoreScan -FilePath "document.pdf" -DeepScan
# Strip metadata
Start-DocCoreScan -FilePath "document.pdf" -StripMetadata
# Extract payloads
Start-DocCoreScan -FilePath "document.pdf" -ExtractPayloads
```
## 📄 许可证
版权所有 © 2026 **Huizhiyun Technologies Inc.** · **汇智云科技股份有限公司**
All Rights Reserved
# 🇪🇸 ESPAÑOL
## 📋 项目概述
**DocCore (核文)** 是一个多层文档分析引擎,完全在内存中运行,不依赖外部数据库或图形界面。每个模块都使用最适合其特定功能的语言编写,优先考虑性能和准确性,而非技术同质性执行流程遵循集中编排模式,PowerShell 充当协调大脑,根据文件类型和请求的分析深度调用 Rust、Python、C++ 和 Node.js 中的专业模块。所有模块通过 stdout 使用 JSON 进行通信,允许替换任何组件而不影响系统的其余部分。
## 🏗️ 系统架构
```
┌────────────────────────────────────────────────────────────────────────────┐
│ DOCORE ORCHESTRATOR │
│ PowerShell │
├────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Rust │ │ Python │ │ C++ │ │ Node.js │ │
│ │ Binary │ │ Document │ │ Memory │ │ Script │ │
│ │ Scanner │ │ Analyzer │ │ Handler │ │ Analyzer │ │
│ │ Parallel │ │ PDF Parser │ │ Buffer │ │ Static │ │
│ │ YARA │ │ Metadata │ │ Operations │ │ Detection │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │ │
│ └─────────────────┼─────────────────┼─────────────────┘ │
│ │ │ │
│ ┌──────▼─────────────────▼───────┐ │
│ │ JSON Report Output │ │
│ │ Threat Level │ │
│ │ Suspicious Patterns │ │
│ └────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────────────────┘
```
## 🛠️ 技术栈
| 模块 | 语言 | 功能 |
|--------|----------|---------|
| **编排器** | PowerShell | 协调、文件检测、威胁聚合 |
| **二进制扫描器** | Rust | 并行 YARA、哈希、熵分析 |
| **文档分析器** | Python | PDF 解析、元数据提取、JavaScript 检测 |
| **内存处理器** | C++ | 缓冲区操作、负载提取 |
| **脚本分析器** | Node.js | 静态代码分析、混淆检测 |
## 🔧 模块详解
### PowerShell 编排器
编排器管理每个分析的完整生命周期。调用 `Start-DocCoreScan` 时,会创建一个带有唯一标识符的隔离会话,封装所有结果。此会话不会持久化到磁盘,确保每次分析都是独立的且不留下痕迹。
**Magic Bytes 识别:** 检查文件的前八个字节以识别实际格式,忽略文件扩展名。识别的 Magic Bytes 包括 PDF、OLE2、Office Open XML、PE 可执行文件、ELF 二进制和 Mach-O。
**香农熵计算:** 分析文件中每个字节的频率分布。熵值高于 0.85 表示加密或压缩内容,低于 0.40 表示纯文本或源代码。
**威胁等级聚合:** YARA 模式检测贡献最多 40 分,高熵贡献 30 分,可疑流贡献 20 分。阈值:70+ = 严重,40-69 = 高,<40 = 低。
### Rust 二进制扫描器
利用 Rayon 库的并发能力,在所有可用 CPU 核心上自动分配工作。使用内存映射文件避免将完整文件加载到内存中,允许分析任何大小的文档,RAM 消耗恒定。
**并行哈希计算:** SHA-256、SHA-512 和 MD5 在单独的线程中同时计算。对于大文件,扫描器将数据分块并独立处理每个块,在现代化硬件上达到高达 1.5 GB/s 的处理速度。
**YARA 模式检测:** 在 Rust 中直接实现 YARA 语言子集。模式包括已知恶意软件签名如 PE 头、NOP sled shellcode、Base64 编码的 PowerShell 命令和 JavaScript 混淆模式。
**分区分析:** 将文件分割成 4096 字节块并计算每个块的局部熵。熵值高于 0.90 的区域标记为高度可疑。
### Python 文档分析器
实现 PDF 解析器,遍历文件内部结构以查找可疑对象。检查每个压缩流,使用 zlib 解压并分析其内容,寻找嵌入的 JavaScript、危险 API 调用和混淆模式。
**JavaScript 提取:** 使用专门的 regex 搜索 `/JavaScript`、`/JS`、`eval()`、`unescape()`、`String.fromCharCode` 和 `ActiveXObject` 等对象。
**元数据提取:** 提取作者、创建者、生产者、创建和修改日期。支持多种 PDF 字符串编码:UTF-8、UTF-16 Big Endian、UTF-16 Little Endian 和 ASCII。
**中文编码检测:** 在 0xE4-0xE9 范围内寻找多字节 UTF-8 字节序列,这是中文、日文和韩文字符的特征。
### C++ 内存处理器
直接在文件的二进制缓冲区上操作,允许在解释型语言中效率低下的低级操作。使用直接指针和地址算术以获得最大速度。
**元数据删除:** 逐字节遍历文件,识别标准 PDF 元数据键并将其从缓冲区中删除。
**Payload 提取:** 搜索嵌入可执行文件的二进制签名:MZ 头(PE)、0x7F454C46(ELF)和 0xCAFEBABE(Mach-O)。还使用 256 字节滑动窗口以 50% 重叠识别可能包含 shellcode 的高熵区域。
### Node.js 脚本分析器
将文件内容作为文本进行静态分析,搜索恶意代码模式,无论容器格式如何。即使它们位于 Python 模块已提取的压缩流中,也能检测 VBA 宏、嵌入脚本和 JavaScript 代码。
**可疑函数检测:** 维护包括 `eval()`、`ActiveXObject`、`WScript.Shell` 和 `String.fromCharCode` 等模式的数据库。
**混淆评分:** 评估平均行长度(过长的行表示压缩或混淆代码)、特殊字符比例(正常代码以字母数字为主)和长 Base64 字符串数量(常用于隐藏 payloads)。
**风险评估:** 结合混淆检测、可疑函数计数和文本内容的熵以产生最终分类。
## 🛡️ 安全设计原则
| 原则 | 描述 |
|-----------|-------------|
| **离线模式** | 信息不会离开系统 |
| **零数据库** | 消除攻击面 |
| **仅内存处理** | 磁盘上不留痕迹 |
| **会话隔离** | 防止分析之间的交叉污染 |
| **模块独立性** | 每个模块都可替换 |
| **JSON 通信** | 最简单的通用协议 |
## 🚀 使用方式
```
# 基础分析
Start-DocCoreScan -FilePath "document.pdf"
# 深度扫描
Start-DocCoreScan -FilePath "document.pdf" -DeepScan
# 移除 metadata
Start-DocCoreScan -FilePath "document.pdf" -StripMetadata
# 提取 payloads
Start-DocCoreScan -FilePath "document.pdf" -ExtractPayloads
```
## 📄 许可证
版权所有 © 2026 **Huizhiyun Technologies Inc.** · **汇智云科技股份有限公司**
All Rights Reserved · 保留所有权利
@sebastiancoronadev 
@liangzhaodev 
**Lead Security Architects** · [codexstudiove.com](https://www.codexstudiove.com)
**Huizhiyun Technologies Inc. · 汇智云科技股份有限公司 · Enterprise Data Solutions**
**⭐ 如果喜欢这个项目,请在 GitHub 上给它一颗星!** 💜
**⭐ 如果喜欢这个项目,请在 GitHub 上给它一颗星!** 💜
**⭐ 如果喜欢这个项目,请在 GitHub 上给它一颗星!** 💜
**由 Sebastián Corona & Liang Zhao 带着 💜 发布**
*构建企业级文档安全解决方案。*标签:AI合规, AMSI绕过, DNS 反向解析, Libemu, MITM代理, URL发现, YARA, 云资产可视化, 内存计算, 可视化界面, 威胁检测, 安全检测, 文档分析, 逆向工具