BayyinahEnterprise/Bayyinah-Integrity-Scanner

GitHub: BayyinahEnterprise/Bayyinah-Integrity-Scanner

一款面向 23 种文件格式的完整性扫描器,通过对比文件的渲染表象与底层结构来检测隐藏、隐蔽或对抗性内容。

Stars: 1 | Forks: 0

# Bayyinah **用于检测数字文档中隐藏、隐蔽或对抗性内容的文件完整性扫描器。** Bayyinah 提取文件中的每一个内容层(可见和不可见的),并报告文件的*显示*内容是否与文件的*实际包含*内容相匹配。它是 [Munafiq Protocol](https://doi.org/10.5281/zenodo.19677111) 执行对齐检测的输入层应用。一个文档如果在表面上渲染得很干净,却携带着隐蔽的 payload、隐写编码、嵌入式 prompt 注入或跨模态异常,那么这就是一个正在执行对齐的文档。Bayyinah 让这种表演显现出来;而由读者来执行识别。 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/265c70f13b031801.svg)](https://github.com/BayyinahEnterprise/Bayyinah-Integrity-Scanner/actions/workflows/ci.yml) [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0) [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/) [![DOI](https://img.shields.io/badge/DOI-10.5281%2Fzenodo.19677111-blue)](https://doi.org/10.5281/zenodo.19677111) [![Version](https://img.shields.io/badge/version-1.1.8-green.svg)](https://github.com/BayyinahEnterprise/Bayyinah-Integrity-Scanner/blob/main/CHANGELOG.md) ## 为什么选择 Bayyinah 现代文档既有表层也有底层。表层是用户打开文件时看到的内容。底层是解析器、邮件网关或语言模型实际接收的内容。对抗性文档利用了两者之间的差距。零宽度字符在不影响渲染的情况下重写了合同的含义;一个 PDF 的对象图包含了阅读器从未显示的 JavaScript 动作;一个电子表格的隐藏工作表保存了可见工作表所掩盖的数据;一封电子邮件的 `From` 头说了一件事,而其 `Return-Path` 却说了另一件事。 Bayyinah 扫描的是底层结构。它将同样的问题应用于 23 种文件类型,涵盖 PDF、Office 文档、电子邮件、HTML、CSV、JSON、文本和代码、光栅图像、SVG、**视频 (MP4/MOV/WEBM/MKV)** 和 **音频 (MP3/WAV/FLAC/M4A/OGG)**。外部显示是否与内部内容相对应,或者内部内容是否已被表现为一种隐藏它的显示?一个独立的跨模态关联引擎会读取已被视频和音频分析器分离出来的 stem,并针对跨 stem 差异发出发现结果。 ## Bayyinah 检测什么 两个隐蔽的*位置*,映射到经典的 *zahir*(外在的/渲染的)和 *batin*(内在的/结构的)之间的区别: **Zahir,文本层(读者看到的 vs 解析器提取的)** - 零宽度字符、Unicode TAG 字符 (U+E0000–U+E007F)、双向控制覆盖、同形字/混合脚本替换、不可见渲染模式 (3, 7)、微小字体、白底白字、重叠/堆叠文本。 **Batin,对象层(PDF 对象图中包含的内容)** - 嵌入式 JavaScript、`/OpenAction`、`/AA` 附加动作、`/Launch` 动作、嵌入文件和 FileAttachment 注释、增量更新(先前的修订仍然存在)、元数据异常(ModDate 早于 CreationDate)、隐藏的可选内容组、对抗性的 `/ToUnicode` CMaps,将可见字形映射到零宽度、双向或 TAG 同形字代码点。 ## 支持的格式 | 格式 | 类型 | 分析器 | 代表性机制 | |--------|------|----------|---------------------------| | PDF | `PDF` | `ZahirTextAnalyzer` + `BatinObjectAnalyzer` | 上述所有文本层 + 对象层机制 | | DOCX | `DOCX` | `DocxAnalyzer` | 修订追踪、批注、隐藏文本、OLE、外部目标关系 | | HTML | `HTML` | `HtmlAnalyzer` | CSS 隐藏文本、屏幕外绝对定位、`