一次搞定网易游戏资源提取:unnpk 解包 NeoX 引擎 NPK 文件实战指南
一次搞定网易游戏资源提取unnpk 解包 NeoX 引擎 NPK 文件实战指南【免费下载链接】unnpk解包网易游戏NeoX引擎NPK文件如阴阳师、魔法禁书目录。项目地址: https://gitcode.com/gh_mirrors/un/unnpk想从游戏包里抠几张立绘、研究一段掉落表逻辑结果 .npk 文件在解压软件里全显示成乱码开源工具 unn/DSMLparameter pk 就是为解包网易 NeoX 引擎 NPK 资源包而生的。这篇文章我会用自己实际踩坑的经历带你从零跑通解包、结构分析、脚本解密和批量处理的完整链路新手也能照着做。从一次全军覆没的解压开始我最初的动机很朴素想研究一下某款手游的美术资源是怎么组织的。拿到手的是一个几百 MB 的.npk文件file命令只告诉我dataWinRAR 打不开7-Zip 也打不开连xxd看开头都只有一串看不懂的魔数。折腾了大半夜差点就准备自己写解析器了。后来在社区里看到有人提到 unn/DSMLparameter pk——一个专为网易 NeoX 引擎 NPK 文件编写的解包工具支持阴阳师、魔法禁书目录等游戏的资源包。编译完一试一条命令就把包拆开了文件还自动按类型分好了类。那一刻的爽感值得写篇文章分享出来。初次见面unnnpk 到底帮我干了什么这个项目很小但分工很清晰一共就两块unnpk主解包程序负责读取 NPK、还原压缩数据、按类型归类输出mapnpk只读分析器把包里的文件清单、偏移量、压缩状态打印成表格方便你解包前侦察tools/ 下的三个 Python 脚本针对脚本类资源如阴阳师的 script.npk做二次解密这是普通解包器做不到的。它适合三类人想提取素材做 MOD 的玩家、想研究私有文件格式的开发者、以及刚入门逆向想找个真实练手对象的爱好者。不需要懂太多前置知识能敲命令就行。三步环境配置五分钟跑通第一个解包先装好一个依赖libmagicunnnpk 靠 libmagic 识别文件类型不同系统装法不一样# macOS brew install libmagic # CentOS / RHEL sudo yum install file-libs file-devel # Debian / Ubuntu sudo apt-get install libmagic-dev编译克隆仓库后一条make搞定编译需要 gcc 和 zlibgit clone https://gitcode.com/gh_mirrors/un/unnpk cd unnpk make编译成功后目录里会出现unnpk和mapnpk两个可执行文件。第一个解包案例用法就一行两个参数NPK 文件路径 输出目录./unnpk yys_assets.npk extracted/预期输出终端会打印一张文件清单表格同时extracted/目录下出现按 MIME 类型分类的子目录像这样extracted/ ├── image/png/00000001.png ├── image/jpeg/0000002A.jpg ├── application/zip/0000005C.zip └── text/plain/000000F3.txt有两个细节值得注意解出来的文件没有原始文件名用的是 8 位十六进制索引比如0A0D60DC这是 NPK 格式本身就不存文件名的缘故压缩数据会自动用 zlib 还原遇到损坏或非 zlib 数据时工具会把原始字节原样吐出来而不是直接报错终止——这种降级策略在解包工具里很实用。动手前先侦察用 mapnpk 把包看个底朝天第一次解包 500MB 的资源包我连里面有什么都不知道。后来养成了习惯先mapnpk看一眼再决定要不要解。./mapnpk -i yys_assets.npk它会输出包的总体信息和每个文件的索引、偏移量、压缩前后大小、校验位、是否压缩。支持导出 Markdown 表格或 CSV数值也支持十六进制/十进制/原始字节三种显示方式# 导出 CSV方便丢进表格软件里筛选 ./mapnpk -i yys_assets.npk -f csv -t int file_list.csv # 十六进制查看偏移方便配合十六进制编辑器核对 ./mapnpk -i yys_assets.npk -t hex预期输出示意# mapnpk! File size: 58234168 Byte Map offset: 0x00000024 | Index | Offset | Size (Byte) | Unzip size (Byte) | Chk | Unzip Chk | Is zip | | --- | --- | --- | --- | --- | --- | --- | | 0x00000001 | 0x00000038 | 0x00000A5C | 0x00002541 | 0x00000000 | 0x00000000 | Yes |看到Is zip列是Yes说明对应文件在包里是压缩存储的Size和Unzip size差距越大压缩收益越高。这一手在判断哪些文件值得提取、包有多大水分时特别好用。重头戏阴阳师 script.npk 的脚本解密流水线如果你只是想要图片和音频上面两步就够了。但如果你想要的是游戏脚本源码比如掉落概率、活动逻辑就得走完一整条解密链路。我以阴阳师的script.npk为例这是我认为这个项目最有含金量的部分。整个流程分四步解包 → 解密脚本 → 修正字节码 → 反编译。第一步解出脚本文件./unnpk script.npk script_raw/解开后你会发现很多没有扩展名的文件因为脚本的二进制内容既不是图片也不是文本无法被类型识别命中。第二步rotor zlib 字节反转拿其中一个文件比如0A0D60DC跑 tools/script_redirect.pypython tools/script_redirect.py script_raw/0A0D60DC 0A0D60DC.dec这个脚本是作者逆向阴阳师官方redirect.py后改写出来的内部做了三件事# 伪代码示意完整逻辑见 tools/script_redirect.py data rotor.newrotor(密钥).decrypt(data) # 1. ROTOR 流式解密 data zlib.decompress(data) # 2. 解压 data 反转并异或(data) # 3. 字节反转 异或 154密钥由asdf_dn、asdf_dt、asdf_df三段常量拼接而成不同游戏可能不同。这点很关键后面会再讲。第三步修正 opcode0A0D60DC.dec已经是 Python 2.7 的 pyc 内容了但还不能直接用因为字节码的 opcode 被映射过指令码被换成了一套自定义编号。跑 tools/pyc_decryptor.py 把它映射回去python tools/pyc_decryptor.py 0A0D60DC.dec 0A0D60DC.pyc这个脚本依赖同目录下的 tools/pymarshal.py——一个自己实现的 Python marshal 序列化器用来在读出 code 对象后重写co_code字节码。如果你对 Python 字节码格式好奇这个文件本身就是很好的教材。第四步反编译成源码uncompyle2 -o 0A0D60DC.py 0A0D60DC.pyc到这里加密的脚本就变成了可以阅读的 Python 源码。技术提示解密用的redirect.pyc其实就藏在script.npk里某个版本对应FB54F059这个文件文件名即它在包中的偏移量。想适配其他网易游戏可以按 README 里描述的思路先解包、再根据特征定位 redirect.pyc、提取出asdf_dn等密钥常量就能复用整条流水线。把解包变成流水线批量处理与按需筛选游戏更新很频繁每次版本变更都要重新解包。手敲命令太傻我写了个几行的批量脚本#!/bin/bash # 批量解包当前目录下所有 .npk for pkg in *.npk; do [ -e $pkg ] || continue out${pkg%.npk}_out mkdir -p $out echo [*] 处理 $pkg ... ./unnpk $pkg $out || echo [!] $pkg 解包失败继续下一个 done磁盘够快的话用xargs并行更省时间ls *.npk | xargs -P 4 -I {} ./unnpk {} {}.out按需提取的思路则是先用mapnpk导出 CSV再用awk筛选出目标条目只解感兴趣的包避免全量解包浪费时间。新手最容易搞错的四件事误区一以为 unnpk 能解所有网易游戏。不是的。NPK 外壳是统一的但脚本层的加密参数因游戏而异。解图片音频大概率没问题解脚本就要自己去找对应密钥了。误区二把 mapnpk 当成解包工具。它只读不写负责输出清单和分析报告解包请认准unnpk。这两个名字相似别搞混。误区三以为解出来的 pyc 能直接跑。不行脚本 pyc 的 opcode 被篡改过必须先过pyc_decryptor修正再补上标准 pyc 文件头才能交给反编译器。误区四看到Z_BUF_ERROR/Z_DATA_ERROR就以为失败了。这其实是工具的容错设计遇到无法解压的数据它会保留原始字节原样输出方便你后续自己研究而不是让整个解包流程崩溃。另外提醒一句README 作者明确说 Windows 上太折腾建议用 macOS / FreeBSD / Linux 环境跑这套工具链。源码里值得偷师的几手unnpk.c只有一个文件、三百行左右很适合当二进制解析的入门读物。几个亮点定位索引区文件偏移0x14处存着索引区起始位置读完就得到文件清单定长记录每个文件一条 28 字节记录7 个uint32分别存索引、偏移、压缩前后大小、校验位和压缩标志结构简单到可以手推类型嗅探先用 libmagic 判断 MIME再结合魔数KTX、RGIS、PKM和文本特征NeoX、vec4、v / vt / f推断出 ktx、glsl、obj 等格式这套内容识别思路可以直接迁移到别的解析项目里。二次开发的方向也很明确往扩展名判断分支里加你关心的新格式或者给脚本解密链写个一键化的 shell 封装想做得更友好还可以用 Python/Tk 套一层图形界面把unnpk当子进程调用。生态与同类工具对比和那些动辄几万 star 的通用解包框架比unnnpk 属于小而美的典型两个 C 程序加三个 Python 脚本没有花哨的 UI但把特定场景做到了极致。横向对比一下方案上手成本对 NPK 的适配脚本二次解密适合谁unnpk低一条命令专为 NeoX 设计自带工具链想快速拿资源的玩家和开发者通用解包框架中高不识别私有格式无处理通用格式的场景自己写解析器高完全可控自研想深挖格式原理的逆向爱好者README 用中文撰写作者明确欢迎 PR 补充内容社区研究脉络比如当年 fate0 公开的阴阳师脚本解密思路也直接写进了文档里。项目更新不算频繁但作为格式研究案例它的价值不在于版本迭代速度而在于把一条完整的逆向链路浓缩成了可复现的步骤。结语从一个打不开的.npk开始到脚本源码摆在眼前中间只隔着一串命令和几段可读性很好的 C 代码。下次再遇到打不开的资源包先别急着放弃——解包工具的思路往往比工具本身更值钱。延伸阅读跑通script.npk流水线后建议再读一遍 README.md 里关于定位redirect.pyc的说明那一段藏着适配其他网易游戏的钥匙也欢迎把新游戏的适配经验以 PR 形式回馈给项目。【免费下载链接】unnpk解包网易游戏NeoX引擎NPK文件如阴阳师、魔法禁书目录。项目地址: https://gitcode.com/gh_mirrors/un/unnpk创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

智能体驱动的多视角体育视频分析:从数据对齐到战术理解

智能体驱动的多视角体育视频分析:从数据对齐到战术理解

1. 从单机位到多视角:体育视频理解的范式跃迁如果你和我一样,曾经为了分析一个足球比赛的战术配合,或者一个篮球进攻回合的跑位,不得不在多个机位的录像之间来回切换、手动对齐时间线,那你一定能深刻体会到“单视角”分…

2026/8/18 3:04:05 阅读更多 →
捷豹路虎全系官降背后的市场逻辑与购车决策分析

捷豹路虎全系官降背后的市场逻辑与购车决策分析

1. 价格调整背后的市场逻辑:为什么是现在?最近,捷豹路虎官方宣布对旗下全系车型进行售价下调,最高降幅达到了8.5万元。这个消息一出,在汽车圈和潜在消费者中激起了不小的水花。作为一名长期关注汽车市场动态的从业者&a…

2026/8/18 3:04:05 阅读更多 →
PCB设计到制造的关键一步:拼板与Gerber文件导出详解

PCB设计到制造的关键一步:拼板与Gerber文件导出详解

1. 从“画好”到“做好”:为什么拼板与Gerber导出是PCB设计的临门一脚画完PCB板图,看着布线整齐、布局合理的工程文件,很多工程师会觉得大功告成。但作为一名有十多年硬件开发经验的从业者,我必须告诉你,这恰恰是“纸上…

2026/8/18 3:04:05 阅读更多 →

最新新闻

Hive GROUPING SETS与GROUPING_ID:多维聚合的利器与实战指南

Hive GROUPING SETS与GROUPING_ID:多维聚合的利器与实战指南

1. 项目概述:从“多维度报表”的痛点说起做数据开发或者数据分析的朋友,对“多维分析”这个词一定不陌生。简单来说,就是你需要从不同维度组合去观察同一份数据。举个最经典的例子:一份销售数据,老板可能想看全国的总销…

2026/8/18 3:43:14 阅读更多 →
微信小程序暗黑模式全攻略:从主题变量到手动切换的工程实践

微信小程序暗黑模式全攻略:从主题变量到手动切换的工程实践

1. 项目概述:不只是换个皮肤那么简单最近在迭代自己的小程序项目,发现越来越多的用户开始在后台反馈,希望增加一个“暗黑模式”的开关。这让我意识到,深色主题已经从一个“锦上添花”的炫技功能,变成了一个影响用户体验…

2026/8/18 3:43:14 阅读更多 →
嵌入式定时器驱动设计:指针数组实现高效动态管理

嵌入式定时器驱动设计:指针数组实现高效动态管理

1. 从指针到定时器:一个嵌入式老兵的驱动设计心法 在嵌入式开发里,定时器驱动是每个开发者都绕不开的基础设施。但如果你只停留在调用 HAL_Delay 或者配置一下自动重载寄存器,那你可能错过了驱动设计中最精妙也最考验功力的部分——如何用数…

2026/8/18 3:43:14 阅读更多 →
LLM智能体记忆管理:从堆叠到编织的ContextWeaver架构实践

LLM智能体记忆管理:从堆叠到编织的ContextWeaver架构实践

1. 项目概述:当LLM智能体学会“编织”记忆最近和几个做AI Agent的朋友聊天,大家普遍头疼一个问题:给智能体喂的上下文(Context)越长,它好像越“笨”。不是答非所问,就是关键信息记不住&#xff…

2026/8/18 3:43:14 阅读更多 →
MySQL LIKE模糊查询:通配符%与_的原理、性能优化与实战场景

MySQL LIKE模糊查询:通配符%与_的原理、性能优化与实战场景

1. 项目概述:为什么模糊查询是数据检索的“瑞士军刀”?在数据库的日常操作里,精确匹配查询就像用钥匙开锁,你知道要找的“锁”长什么样,直接匹配就行。但更多时候,我们面对的是“模糊”的需求:想…

2026/8/18 3:43:14 阅读更多 →
数字内容防盗技术:从水印到动态防御的实战解析

数字内容防盗技术:从水印到动态防御的实战解析

1. 数字时代的内容保卫战上周有位网文作者朋友深夜给我打电话,说发现自己的付费章节刚更新5分钟,就被全文截图发在了盗版论坛上。更糟的是,这些盗版内容还带着他的专属签名水印——这就像自家种的果子还没上市,小偷已经摆摊叫卖了…

2026/8/18 3:42:14 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/17 2:58:27 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/17 2:58:30 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/17 2:58:32 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →