wct097/eft-viewer

GitHub: wct097/eft-viewer

开源跨平台的 EFT/ANSI-NIST-ITL 生物特征文件查看器,支持解析并展示指纹交易记录与 WSQ 压缩指纹图像。

Stars: 0 | Forks: 0

# EFT Viewer 一款基于 ANSI/NIST-ITL 生物特征数据交换标准的开源、跨平台电子指纹传输 (Electronic Fingerprint Transmission, EFT) 文件查看器。 ## 下载 从[发布页面](../../releases)下载最新版本。 已发布适用于 Windows、macOS 和 Linux 的独立构建版本 —— 无需安装 .NET 运行时。 ### Windows 下载 `EftViewer-vX.X.X-win-x64.zip`,解压后运行 `EftViewer.Desktop.exe`。 ### macOS 下载 `EftViewer-vX.X.X-osx-arm64.zip` (Apple Silicon),解压后执行: ``` chmod +x EftViewer.Desktop ./EftViewer.Desktop ``` 目前的构建版本尚未进行代码签名,因此首次启动需要通过 Finder → 右键点击 → **打开** (或执行 `xattr -dr com.apple.quarantine EftViewer.Desktop`) 来绕过 Gatekeeper 拦截。 ### Linux 下载 `EftViewer-vX.X.X-linux-x64.zip`,解压后执行: ``` chmod +x EftViewer.Desktop ./EftViewer.Desktop ``` ## 截图 | Type-4 旧版指纹 | Type-14 十指指纹卡 | |:---:|:---:| | ![Type-4 平纹](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/586892ca0e033549.png) | ![Type-14 指纹卡](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/6ce25a0be8033554.png) | ## 概述 EFT 文件被 ATF、FBI 及其他机构用于电子指纹提交。本工具允许用户打开、解析并查看 EFT 文件的内容,包括: - 交易信息 (Type-1 记录) - 描述/人口统计数据 (Type-2 记录) - 支持 WSQ 解压的指纹图像 (Type-4、Type-14 记录) - 其他生物特征数据记录 ## 项目状态 **v0.1.0** - 初始版本 ### 功能 - [x] 打开并解析 EFT 文件结构 - [x] 显示记录层级和元数据字段 - [x] 解码并显示 WSQ 压缩的指纹图像 - [x] 支持 Type-4 (旧版) 和 Type-14 指纹记录 - [x] Windows 桌面应用程序 ### 未来目标 - [x] 指纹图像导出为 PNG - [x] macOS 和 Linux 构建 (独立构建,在 CI 中构建并测试) - [ ] 根据 ANSI/NIST-ITL 规范进行字段验证 - [ ] 支持 Type-10 (面部/SMT) 和 Type-15 (掌纹) - [ ] 通过 [SignPath.io](https://signpath.io) 进行代码签名 (消除 Windows SmartScreen 警告) ## 技术栈 | 组件 | 技术 | 说明 | |-----------|------------|-------| | 核心解析器 | C# / .NET Standard 2.0 | 共享库,兼容性广 | | 桌面 UI | Avalonia UI / .NET 10 | 跨平台 (Windows、macOS、Linux) | | 移动端 (未来) | .NET MAUI | Android/iOS | | WSQ Codec | 托管 C# (基于 Managed.Wsq) | FBI 小波压缩标准,无原生依赖 | | 备选 CLI | Python | 脚本/自动化用例 | ### 为什么选择这些技术 **桌面端选择 Avalonia UI 而非 MAUI**:目前提供了更成熟的跨平台桌面支持。MAUI 在移动端表现出色,但 Avalonia 为桌面应用提供了更好的 Windows/macOS/Linux 体验一致性。 **核心库选择 .NET Standard 2.0**:在各种运行时中具有最大的兼容性。如有需要,该解析器可被桌面端、移动端甚至旧版 .NET Framework 项目使用。 ## EFT / ANSI-NIST-ITL 格式参考 ANSI/NIST-ITL 标准 (NIST 特别出版物 500-290) 定义了用于生物特征数据交换的基于记录的格式。 ### 记录类型 | 类型 | 说明 | |------|-------------| | 1 | 交易信息 (必需,有且仅有一个) | | 2 | 用户定义的描述性文本 | | 4 | 灰度指纹图像 (旧版,8 位) | | 10 | 面部、SMT (疤痕/印记/纹身) 图像 | | 14 | 可变分辨率指纹图像 (当前标准) | | 15 | 可变分辨率掌纹图像 | ### 结构 记录包含格式为 `Type.Field:Value` 的带标签字段。字段之间由控制字符分隔: | 分隔符 | 十六进制 | 用途 | |-----------|-----|---------| | GS | 0x1D | 组分隔符 (字段之间) | | RS | 0x1E | 记录分隔符 (子字段之间) | | US | 0x1F | 单元分隔符 (信息项之间) | | FS | 0x1C | 文件分隔符 (记录结束) | ### 图像编码 Type-4 和 Type-14 记录中的指纹图像通常采用 WSQ 压缩 (小波标量量化),这是一种由 FBI 开发的格式,专为指纹纹理细节优化,压缩比约为 15:1。 **WSQ 资源:** - NIST 生物特征图像软件 (NBIS):https://www.nist.gov/services-resources/software/nist-biometric-image-software-nbis - 包含 C 语言的参考 `dwsq` (解码) 和 `cwsq` (编码) 实现 ## 示例文件 `samples/` 目录包含 NIST 提供的测试文件: - **nist-type-4-14-flats.eft** - 旧版 Type-4 和现代 Type-14 指纹记录 - **nist-type-14-tpcard.eft** - 包含 Type-14 记和质量指标的十指指纹卡 详情及其他 NIST 测试数据链接,请参见 `samples/README.md`。 ## 从源码构建 ### 前置条件 - [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0) 或更高版本 - Visual Studio 2022 或带有 C# Dev Kit 的 VS Code (可选) ### 构建与运行 ``` # Clone the repository git clone https://github.com/wct097/eft-viewer.git cd eft-viewer # Restore dependencies dotnet restore # Build dotnet build # Run the desktop application dotnet run --project src/EftViewer.Desktop # Run tests dotnet test ``` ### 解决方案结构 ``` EftViewer.sln ├── src/ │ ├── EftViewer.Core/ # Parser library (.NET Standard 2.0) │ └── EftViewer.Desktop/ # Avalonia UI application (.NET 10) └── tests/ └── EftViewer.Core.Tests/ # Unit tests (xUnit) ``` ## AI 辅助开发 本项目在 AI 的辅助下开发。面向 AI 助手的指南位于 [CLAUDE.md](CLAUDE.md) 和 [docs/project_context.md](docs/project_context.md)。 ## 许可证 版权所有 2026 William Tyler 根据 Apache License, Version 2.0 授权。详情请参阅 [LICENSE](LICENSE)。
标签:ANSI-NIST-ITL, C2日志可视化, WSQ图像解压, 指纹识别, 文件查看器, 生物特征识别, 逆向工具