arf資源文件解包器是一款arf資源加壓縮工具,可以對(duì)加密的文件進(jìn)行解壓縮,操作方便快捷,用戶還可以通過(guò)該軟件輕松的提取ARF資源包,許多文件都是arf的嗎,現(xiàn)在不用愁了。
主要功能
ARF文件分為4部分
1、16字節(jié)文件頭 2、子文件名列表 3、子文件信息列表 4、子文件數(shù)據(jù)
一、ARF文件頭數(shù)據(jù)
這一部分共16字節(jié),前4字節(jié)是文件標(biāo)志(41 52 00 00),接下來(lái)4字節(jié)是子文件個(gè)數(shù),4字節(jié)加密文件名列表用的MagicKey,最后4字節(jié)是子文件信息列表的偏移地址。
二、子文件名列表
這一部分是不定長(zhǎng)的,有N個(gè)shortstring組成。而且文件名的前4的整數(shù)倍字節(jié)被加密過(guò),需要用MagicKey異或解密。
三、子文件信息列表
首先定義一個(gè)結(jié)構(gòu) struct FileInfo { WORD ID; // 子文件的編號(hào),一般是從0開始計(jì)算,貌似沒什么實(shí)際意義 DWORD Offset; // 子文件在包中的起始偏移量 DWORD FileSize; // 子文件的大小 BYTE MagicKey; // 解密子文件用的MagicKey };
第三部分由N個(gè)FileInfo結(jié)構(gòu)組成,N是子文件的總個(gè)數(shù)。
四、子文件數(shù)據(jù)
除去前三部分,剩下就是子文件數(shù)據(jù)。解包的時(shí)候直接通過(guò)FileInfo.Offset在文件中Seek,然后讀取FileInfo.FileSize字節(jié)的數(shù)據(jù)。不過(guò)需要注意的是,每個(gè)小文件的頭20字節(jié)被MagicKey異或過(guò)了,我們?cè)佼惢蚧貋?lái)就OK啦。