Jonaaaa/N2Elite-ng

GitHub: Jonaaaa/N2Elite-ng

一款开源、完全离线的跨平台 N2 Elite / Amiiqo USB amiibo 读写器管理器,提供读取、备份、加解密和多存储库管理功能,替代已废弃的官方 N2 Manager。

Stars: 0 | Forks: 0

# N2Elite-ng 一款开源、跨平台(Windows / Linux / macOS)的管理器,用于 **N2 Elite / Amiiqo USB 读写器** —— 这是一个现代化的、完全离线的替代品, 用于替代已被废弃的“N2 Manager”应用程序。 ![在 Windows 上运行的 n2elite-ng GUI](https://static.pigsec.cn/wp-content/uploads/repos/cas/6c/6c94431ee0e8ff2e6802cfae4d41711a0dcb0e20bffee5096cade393e799d849.jpg) *Windows 上的 n2elite-ng 图形化管理器 —— 已连接到解锁状态的 N2,展示了 amiibo 存储库网格、单个 amiibo 的详情面板,以及活动日志。* ## 功能 - **与加密狗通信**,通过其串行接口(CP210x/MFRC522)连接 —— 支持自动检测。 - **读取 / 备份**当前活动的标签,保存为标准的 NTAG215 `.bin` 文件。 - **Amiibo 加密**(`decrypt` / `encrypt`)使用*你自己*的 `key_retail.bin` (类似于 TagMo/amiitool) —— 完全离线。 - **N2 管理**(存储库列表/转储、设置存储库数量、选择存储库、锁定/解锁、 写入) —— 已实现;需要将 N2 圆盘解锁进入 manager 模式。 - **完全离线选项**:内置 amiibo 名称数据库,以及可选的一次性 `sync`(同步),用于下载整个数据库和所有手办图片,这样之后就无需再进行任何网络获取。 ## 安装与构建 (Make) Python 包是基础;一个 Tkinter **GUI**(仿照原始的 N2 Manager 设计)和原生二进制文件都是基于它构建的。 ``` make install # set up ./.venv and install the app + deps make gui # launch the graphical app make run ARGS="read -o tag.bin" # run the CLI make test # run the offline test suite make build-linux # -> dist/n2elite-ng (standalone, no Python needed) make build-windows # -> dist/windows/n2elite-ng.exe (via Wine; see tools/build_windows.sh) make clean ``` 构建过程会生成**两个**二进制文件:`n2elite-ng` —— 一个**窗口化 GUI** 应用程序(无控制台 窗口;双击即可运行)—— 以及 `n2elite-ng-cli` —— 一个用于终端/脚本的 控制台 CLI(不带参数运行它即可打开 GUI)。 `make install` 会将软件包安装到项目本地的 `./.venv` 中 —— 它**不会** 修改你系统的 `PATH` 或 shell 配置。这会在*虚拟环境内部*创建两个命令, `n2elite-ng`(**CLI**)和 `n2elite-ng-gui`(**GUI**);通过 `./.venv/bin/n2elite-ng …` 来运行它们(或者在激活该虚拟环境之后)。如果你根本不想要 Python 环境, 请优先选择上述的独立二进制文件。 **适用于两种操作系统的原生二进制文件:** `make build-linux` 在 Linux 上构建; `make build-windows` 通过**64 位** Wine 交叉构建,使用的是一个便携版 Python —— 无需 32 位 Wine 库或修改宿主机(参见 `tools/build_windows.sh`)。 最可靠的途径是使用内置的 CI workflow (`.github/workflows/build.yml`),它会在各自的 runner 上构建真正的 Linux **和** Windows 二进制文件。 Linux 串口访问:将你的用户添加到 `dialout` 用户组 (`sudo usermod -aG dialout $USER`,然后重新登录),而不是以 root 身份运行。 ## 用法 ``` n2elite-ng gui # launch the graphical app n2elite-ng ports # list serial ports n2elite-ng info # identify the tag on the reader n2elite-ng read -o mytag.bin # dump the active tag (540-byte NTAG215) n2elite-ng monitor # watch for a tag (hold connection open) n2elite-ng unlock # unlock a locked N2 Elite (press its button) n2elite-ng backup # dump all N2 banks (needs unlocked N2) n2elite-ng decrypt -k key_retail.bin in.bin out.bin # offline amiibo decrypt n2elite-ng encrypt -k key_retail.bin in.bin out.bin # offline amiibo encrypt n2elite-ng identify mytag.bin # name the amiibo in a .bin (offline) n2elite-ng sync # download the full amiibo DB + all images ``` `read` 还会使用内置的、离线的公共 amiibo ID 名称数据库打印出 amiibo 的名称(例如 "Link - Archer")。在 GUI 中,**Show image**(选择开启) 会获取并缓存 amiibo 的手办图片;每个按钮都有一个鼠标悬停提示框来 解释其功能。 ### 实现完全离线 默认情况下,识别功能可以离线工作(内置数据库),图片是 唯一按需获取的内容。要消除这最后一个在线依赖,请运行 `n2elite-ng sync`(或者在 GUI 中点击 **Settings → Download all images / Update database**)。它会下载最新的 amiibo 数据库,并将所有手办图片 预缓存到你的缓存文件夹中 —— 这个过程是安全的(HTTPS、大小受限、经过验证)且高效的 (有界的并行下载,跳过已缓存的文件)。之后,该应用程序就 完全不需要网络了。`sync --database-only` / `--images-only` 仅执行其中一项操作。 ## 设计原则 - **默认离线。** 没有遥测,也没有任何网络调用,除了两个可选择开启的、 仅下载的功能(图片获取和 `sync`) —— 任何数据都不会离开你的机器。 - **你的密钥始终属于你。** `key_retail.bin` 绝不会被内置、传输或 记录(它已被 git 忽略)。本项目**不**提供任何 Nintendo 密钥或 amiibo 数据。 - **安全第一。** 读取操作是非破坏性的;写入操作受权限控制,并且会首先进行备份。 ## 硬件 N2 Elite / Amiiqo USB 底座:NXP MFRC522 NFC 前端在寄存器级别进行驱动, 通过 Silicon Labs CP2102 USB-UART 桥接器(VID:PID `10c4:ea60`),9600→921600 波特率。 协议细节请参见 `docs/PROTOCOL.md`(通过逆向工程原始应用程序得出)。 ## 许可证与致谢 由 **Jona** 编写。基于 **PolyForm Noncommercial 1.0.0** 许可证授权(参见 `LICENSE`) —— 可自由使用、修改和分享,但**不可用于商业盈利**。 仅供对你所拥有的硬件进行个人备份/互操作使用。请提供你自己从 自己的主机上转储的 `key_retail.bin`。本项目**不**提供任何 Nintendo 密钥或 amiibo 数据。第三方归属说明请参见 `THIRD_PARTY_NOTICES.md`。 通过对设备进行逆向工程并移植开源概念而构建 —— 完整致谢请见 [`docs/SOURCES.md`](docs/SOURCES.md) 和 [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md)。
标签:NFC, Python, 串口通信, 云资产清单, 任天堂Switch, 无后门, 桌面应用, 漏洞挖掘, 硬件管理工具, 逆向工具, 逆向工程