KostaJovanovic/Universal-File-Analyser

GitHub: KostaJovanovic/Universal-File-Analyser

一个零后端的纯浏览器文件取证与分析工作台,支持一千三百多种文件格式的本地分类、解析与可视化,确保数据绝不上传。

Stars: 1 | Forks: 0

Analyser banner # Analyser **一个零后端的文件取证工作台,完全在你的浏览器中运行。** 拖入任何文件,它就会在你的设备上进行分类、解析和可视化。绝对不会上传任何数据。 [**打开 Analyser**](https://lab.valjdakosta.com) · [支持的格式](https://lab.valjdakosta.com/formats) · [示例](https://lab.valjdakosta.com/samples) · [关于](https://lab.valjdakosta.com/about) · [更新日志](https://lab.valjdakosta.com/patch) See it work, before you drop a thing, the samples gallery
## 为什么需要 大多数“文件检查”网站的工作原理是将你的文件上传到服务器,而这正是你处理私人照片、合同、磁盘映像或密钥文件时最不希望发生的。Analyser 采取了相反的方法:页面是静态的,完全没有后端,每一个字节的分析都是通过 File API 和延迟加载的 WebAssembly 在你的浏览器中进行的。它可以作为可安装的 PWA 离线工作,你可以打开网络标签页来验证其不上传声明的真实性。 ## 它能打开什么 Analyser 能够识别 **超过 1,350 种文件类型**。深度因格式而异:照片、音频、视频、文档、3D 模型、归档、地图和数据库将获得完整的查看器和深度分析,而数百种专有格式则通过 magic bytes 进行识别并解码其 header 元数据。任何仍未知的文件都会获得 hex dump 和尽力的识别。 完整且可搜索的列表位于 [lab.valjdakosta.com/formats](https://lab.valjdakosta.com/formats),每个支持的扩展名都有对应的指南页面。此外还有一个[比较页面](https://lab.valjdakosta.com/compare),可以并排对两个文件进行相同的分析,并高亮显示它们不同的每一个字段;以及一个[示例库](https://lab.valjdakosta.com/samples),提供示例文件供你尝试,无需使用你自己的文件。 ## 超越识别 识别文件仅仅是起点。真正的工作是从 Analyser 知道它处理的是什么文件开始的,其中很大一部分最好通过展示而不是描述来说明。 ### 音频:频谱图、隔离和端侧 AI 波形和频谱图视图(深入至 20 Hz 以下范围)、编解码器和响度分析、倒放以及实时麦克风捕获。频率隔离面板允许你实时切分出特定频段,并且浏览器内的 AI 模型可以在无需服务器往返的情况下将人声与伴奏分离开来。
Spectrogram view with magma colour map and log axis Live frequency isolation panel
https://github.com/user-attachments/assets/a9226e4a-90d0-45d2-8c82-d65578e2b3e8 端侧 AI 人声分离:模型完全在浏览器中运行,不会上传任何内容。
### 3D、CAD 和制造 STL 和 STEP/IGES 查看器、DWG 图纸、SolidWorks 和 Fusion 360 包,以及一个 G-code 刀具路径模拟器,它将打印重建为实体的沉积细丝,逐层动画展示构建过程,并能将其导出为可共享的视频片段。
G-code toolpath viewer reconstructing a printed plaque G-code build animation
### 电子产品 KiCad 和 Altium PCB 项目渲染为可翻转和检查的交互式 3D 电路板,并伴有原理图、SPICE 波形和 IPC netlists。
Interactive 3D PCB board view from a KiCad project
### 创意项目文件 After Effects、Premiere、DaVinci Resolve 和 VEGAS 项目,带有可预览的合成时间轴;EDL/FCPXML/OTIO 时间轴、PSD 和 Illustrator 文件、色彩 LUT、动画字体样本、Lottie 动画、MIDI 乐谱、字幕和歌词。
After Effects project timeline reconstruction Animated font glyph specimen
### 文件夹和归档 浏览 ZIP、7z、RAR 和整个拖入的文件夹,使用 treemap 分析实际占用空间的分布,并允许你直接点击任何文件进行分析。漫画 (CBZ/CBR)、电子书 (EPUB/MOBI)、DjVu 扫描件和 Jupyter notebooks 都有专属的阅读器。
Treemap size breakdown of a dropped folder
### 以及更多 - **文件恢复** - 修复被截断或损坏的 JPEG/PNG 文件,使用来自同一相机的参考照片重建损坏的 JPEG header,从任何二进制大文件中提取内嵌图像,并通过提取原始的 H.264/H.265 流(如果需要,可使用参考片段作为捐赠者)来挽救没有索引且未完成的 MP4/MOV 录音。 - **照片** - EXIF 和 GPS 读取、直方图、OCR、二维码检测、HEIC 和相机 RAW 格式转换,以及一种将图像转化为声音的“声化”模式。 - **视频** - 逐帧和流分析、场景切换检测,以及在播放器和读取面板之间同步拖动进度条。 - **取证和数据** - CRC-32、MD5、SHA-1、SHA-256 和 SHA-512 哈希值,一张网络指标 (OSINT) 卡片,可以从任何文件中提取 URL、IP、域名和电子邮件,生成可点击打开的查询链接(不会自动联系任何网络),外加 SQLite 数据库、git 对象、电子邮件和磁盘映像的查看器,以及完整分析的 JSON 导出。 - **地理数据** - 在本地渲染并绘制在地图上的 GPX 轨迹、KML 和 GeoJSON。 ## 隐私 该网站自主发起的唯一网络请求是一个匿名的“文件已分析” ping,只携带一个纯小写的扩展名字符串。这些计数为公开的[实时使用页面](https://lab.valjdakosta.com/stats)提供数据,这是一个关于人们拖入了什么文件的真实记录,未被识别的类型会被合并到同一行中,因此它们的名称永远不会被显示或存储。
The live-usage stats page
## 风格 你可能从未见过如此时尚的文件分析网站。它采用了让我非常满意的 [swiss design](https://en.wikipedia.org/wiki/Swiss_Style_(design)) 启发的布局、调色板和字体集。我确保不会为了耍酷而牺牲任何功能性或可读性,希望在这方面也取得了成功。棱角分明、等宽字体、毫不杂乱。还有……一个隐藏的游戏?
p
## 底层原理 该网站使用纯 HTML、CSS 和 ES-module JavaScript 编写。没有框架,没有构建步骤,没有 `node_modules`。繁重的工作由 WebAssembly 引擎和专用库完成,仅在实际需要处理文件时才会延迟加载它们: - **FFmpeg** 用于视频重混合、帧提取和音频解码 - **ImageMagick** 用于 RAW 照片转换 - **pdf.js** 和 **Ghostscript** 用于 PDF 和 PostScript - **Tesseract** 用于 OCR - **OpenCASCADE** 用于 STEP/IGES 曲面细分(首次使用时获取,然后缓存以供离线使用) - **sql.js** 用于 SQLite,**libarchive** 和 **xz** 用于归档,**OpenJPEG** 用于 JPEG 2000 - **exifr**、**heic2any**、**jsQR**、**Leaflet**、**fflate** 及其他相关工具 不过,大多数解析都是手写的:几百个二进制 header 解析器被组织成按域划分的延迟加载块,因此初始页面保持很小。部署仅仅是 Cloudflare 上的静态资源;每次推送到 `main` 分支就会发布。 ## 离线安装 页脚中的“下载以供离线使用”部分会将 Analyser 缓存为可安装且完全离线的 Progressive Web App,分为三个累进层级:**基础版**(整个应用程序)、**完整版**(增加 OCR、地图、二维码扫描、HEIC、归档、PostScript、CAD 图纸和示例库)以及**完美版**(30 多种语言的 OCR 以及端侧 AI 人声分离)。
The three-tier offline download section in the footer
## 本地运行 ``` server.bat ``` 这会在 localhost:3000 上启动一个本地实例,并在浏览器中打开它。它保留了 100% 的功能,因为所有的一切都是为了独立于服务器而构建的。打印出的网络 URL 也可用于在同一 Wi-Fi 下进行手机测试。无需安装任何东西,也无需构建任何内容;编辑文件并刷新就是整个开发循环。 ## 项目结构 - `web/` - 整个网站(在域名根目录提供服务);以下所有内容都位于此处 - `web/index.html` - 拖放分析应用程序 - `web/assets/js/core/formats.js` - 每一种受支持的文件类型的唯一事实来源 - `web/assets/js/renderers/` - 每个顶级类型(照片、音频、视频、PDF、3D 等)对应一个模块 - `web/assets/js/parsers/` - 用于长尾格式的按域划分的延迟加载元数据解析器 - `web/assets/js/lib/` - 共享的二进制辅助程序和 WASM 加载器 - `web/assets/vendor/` - 第三方库,在本地提供服务,以确保应用程序保持离线可用 - `tools/` - Node 脚本(位于仓库根目录),用于从目录预渲染 `/formats` SEO 页面 - `worker/` - 匿名已分析文件计数器背后的 Cloudflare Worker(唯一的服务器端代码) - `web/sw.js` - 离线支持背后的 service worker ## 版本控制 每一次提交都是一个独立的版本(目前处于 5.x 时代),在提交时自动打上标记。完整的历史记录(每次提交一条记录)位于 [更新日志](https://lab.valjdakosta.com/patch)。 ## 许可证 版权所有 © 2026 Kosta。基于 [GNU General Public License v3.0](LICENSE) 许可。 Analyser 是自由软件:你可以自由地使用、学习、修改和分享它,用于任何目的,包括商业用途。条件是互惠性:如果你分发它或修改后的版本,你必须传递相同的自由,并在 GPL 下发布你的源代码。本软件不提供任何保证。 此许可证涵盖了我编写的代码。`web/assets/vendor/` 下的第三方库保留其各自的许可证(其中包括 AGPL-3.0 下的 Ghostscript 和 LGPL 下的 LibRaw),每个库都附带了其许可证,并在网站页脚中注明。 ## 文档 如需深入了解代码库、架构、拖放到渲染的 pipeline、每一个渲染器模块,以及网站上各项功能的完整使用参考,请参见 [`lab.valjdakosta.com/docs`](documentation)。
标签:AI工具, PWA, WebAssembly, 元数据解析, 后端开发, 多模态安全, 数字取证, 文件分析, 离线计算, 程序员工具, 自动化脚本