日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于DNF的多媒体包NPK文件的那些事儿(1)

發(fā)布時間:2023/12/9 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于DNF的多媒体包NPK文件的那些事儿(1) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

NPK文件是DNF內(nèi)置多媒體文件包,曾經(jīng)用過EXRPG的大家都知道,NPK文件分為貼圖NPK和音效NPK兩種。貼圖NPK內(nèi)部包含若干IMG文件,而一個IMG文件則由若干個經(jīng)過壓縮的圖片文件構(gòu)成,而NPK文件的其他部分則用由圖片的各種屬性數(shù)據(jù)、圖片的相對位置以及校驗位所構(gòu)成;而音效NPK則包含若干OGG文件。

?

NPK文件結(jié)構(gòu)

每個NPK文件由4部分構(gòu)成:NPK文件頭(紅色框內(nèi)),IMG文件索引(黃色框內(nèi)),NPK校驗位(藍色框內(nèi)),IMG文件序列(剩下的框內(nèi))。具體內(nèi)容如下表所示:

NPK文件頭

20個字節(jié),包括NPK文件頭字符串和內(nèi)含IMG文件的個數(shù)

IMG文件索引表

IMG文件1索引

每個IMG文件索引占264字節(jié),包括IMG文件在整個NPK文件的地址偏移量和所占大小,以及經(jīng)過一種特殊算法加密后的名字。

IMG文件2索引

IMG文件3索引

NPK校驗位

32個字節(jié),使用SHA256算法用以對NPK文件的合法性進行校驗。

IMG文件序列

IMG文件1

所有具體的IMG文件組成的集合。

IMG文件2

IMG文件3

?

1.????NPK文件頭

NPK文件頭共20字節(jié),包含一個16字節(jié)的固定的文件頭字符串“NeoplePack_Bill”以及4字節(jié)的IMG文件的數(shù)目。

2.????IMG文件索引表

IMG文件索引表由若干個IMG文件索引數(shù)據(jù)首尾相接構(gòu)成,每個IMG文件索引有264字節(jié),其中包含了該NPK文件中每個IMG文件的地址偏移量,所占大小和加密后的名稱,在提取IMG文件時,可以直接根據(jù)對應(yīng)的索引表來直接獲取地址和大小,然后進行讀取操作。

IMG文件索引表的結(jié)構(gòu)如下所示:

地址偏移量

4字節(jié),地址偏移量

IMG文件大小

4字節(jié),表示對應(yīng)IMG文件的大小

IMG文件名稱

256字節(jié),IMG文件加密后的名稱。

IMG文件名加密方法為:文件名原字符串轉(zhuǎn)換為256字節(jié)的ASCII碼(不足的以0填充),然后與256字節(jié)的字符串(注意最后一位是空格):

“puchikon@neople dungeon and fighterDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNFDNF”

的ASCII碼進行按位異或運算。當然,解密和加密算法是一樣的。

3.????NPK文件校驗位

當NPK文件里包含至少1個IMG文件時,NPK文件在IMG文件索引表的后邊設(shè)置32字節(jié)的校驗位。校驗位根據(jù)其之前的所有內(nèi)容(即NPK文件頭和IMG文件索引表)的字節(jié)流的前17的整數(shù)倍,進行SHA256加密。

C++沒有內(nèi)置的SHA256加密算法,網(wǎng)上有很多開源庫可供下載(https://code.csdn.net/snippets/2538665)。

NPK文件校驗位在NPK中具有極其重要的位置,當一個NPK文件的校驗位不匹配時,DNF游戲?qū)⒁暺錇橐粋€無效的NPK文件,從而不會讀取該NPK文件內(nèi)的資源。

4.????IMG文件序列

IMG文件序列由NPK文件中所包含IMG文件數(shù)據(jù)首尾拼接而成,每個IMG文件的大小不是確定的,但是可以通過讀取對應(yīng)的IMG文件索引表來確定每一個IMG文件的起始位置和大小,從而讀取整個IMG文件。IMG文件的詳細格式見后續(xù)介紹。

總結(jié)

以上是生活随笔為你收集整理的关于DNF的多媒体包NPK文件的那些事儿(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。