當前位置:首頁 » 操作系統 » 御劍江湖源碼

御劍江湖源碼

發布時間: 2023-03-03 02:54:43

1. 求一種能解壓CPK文件的軟體

這個CPK提取器!經測試,它在仙劍3中工作得很好,我估計在外傳中使用問題也不大,因為畢竟游戲引擎沒有太大的變化。.CPK應該是是軟星自己寫的文件格式,不過我在網上查找相關資料時意外的發現了一個叫風魂的游戲,我估計軟星的程序員一定研究過這個游戲,因為兩者的數據存儲方式驚人地相同,軟星只改變了一些小地方(如文件頭部)。兩者同樣採用MiniLZO快速壓縮演算法,採用排過序的CRC作為ID以方便使用二分搜索來快速定位文件等等,下面我就來簡單介紹一下,其實我對文件的分析很不完全,好多地方我並不清楚,不過這些初步成果已經足夠寫一個CPK提取器了。CPK文件格式簡介文件頭0x80位元組為CPK的基本信息,其中頭4位元組為CPK文件標志:0x52 0x53 0x 54 0x1A,從0x80開始是一個類似於硬碟FAT的結構,由若干個 struct構成(我稱之為索引,下面會詳細討論)最後才是數據區,CPK中存儲的所有的文件都經過MiniLZO壓縮。索引結構:Type Index=record CRC :DWORD; Attrib :DWORD; ParentDir :DWORD; Offset :DWORD; CompressedSize :DWORD; OriginalSize :DWORD; InfoRecordSize :DWORD;(????)每個Index代表一個文件(目錄也是一種文件),佔0x1C個位元組,從CPK的0x80開始緊密排列。Index結構的總數存儲在CPK的0x20處,是一個DWORD下面我來一一做出解釋:CRC:據我猜測應該是根據文件名Hash出的一個數值,若干個Index結構在CPK文件中就是按這個數值升序排列的。這樣的好處是只要計算出要訪問文件的CRC,就可以利用二分查找在對數時間內定位該文件的Index,進而讀取數據。Attrib:該文件的屬性,我只知道00000003代表目錄,其他的都不太清楚,不過這已經足夠了。ParentDir:一個CRC值,等於它的父目錄的CRC。CPK文件支持子目錄,當你定位好一個文件的index後,通過這個指針反復向上層遍歷,就可以取得它的完整的存儲路徑。在根目錄下的文件的Index中此值為0。Offset:壓縮後的數據在CPK中的偏移量。CompressedSize:壓縮後數據的大小。對於目錄,這個值為0。OriginalSize:原始文件的大小,方便你解壓時開緩沖區。InfoRecordSize:奇怪的參數。對於每一個Index所代表的文件,壓縮後的數據在CPK中從index.Offset起開始存儲,佔用index.CompressedSize的空間,接下來就是一個大小為InfoRecordSize的奇怪記錄,我只知道這個記錄的一開頭就是文件名,以#0結束,其他的都不清楚,有興趣的可以研究一下。需要注意的是,只要InfoRecordSize為0,或這個Index不是目錄,但CompressedSize為0,這個Index就毫無疑義,不需處理。我因為多次運行升級程序(為了調試它來研究CPK格式),文件中已有好多這樣的無效Index了。MiniLZO解壓:我不想研究這種東西了,讓GbEngine.dll自己做去吧。看看他的ExportTable,發現有這么一行:?DeCompress@CPK@@QAEKPAX0K@Z翻譯過來就是public: unsigned long __thiscall CPK::DeCompress(void *,void *,unsigned long)實際上是function DeCompress(Dest,Source:pointer;SourceSize:integer):integer;stdcall;這下就大功告成了。2004年8月22日蘇州中學徐汝斌附1:我寫的CPK Extracter[b:724257d8c5]( http://xurubin.91i.net/cpk.zip)[/b:724257d8c5]本程序必須放在仙劍3根目錄下(即要有ijl15.dlltopo.dllgbengine.dllMss32.dll這些文件)原因如上。[b:724257d8c5]源碼 http://xurubin.91i.net/source.zip[/b:724257d8c5]附2:仙劍3音樂標題我是根據音樂選集上的名稱再加上網上試聽後找出來的,只有24個,那位好心人如有剩下的一定要寫出來哦PI01.MP3御劍江湖PI05.MP3凄涼雪PI08.MP3流轉虹PI09.MP3月迷縱PI10.MP3紫陌豐田PI11.MP3臨江仙PI12.MP3望海潮PI13.mp3降妖譜PI15.MP3洞天福地PI16.MP3紫鴉烏PI17.MP3滄桑嘆PI19.MP3鐵鎖鎮妖PI20.MP3魔神訣PI21.MP3步雲登仙PI24.MP3仗劍PI25.MP3臨危PI26.MP3魔劍斬妖PI27.MP3玉滿堂PI28A.MP3還魂草PI30.MP3水柔聲PI31.MP3青玉案PI32.MP3玄色風PI33.MP3情牽PI34.MP3輪回

熱點內容
我的世界國服pvp伺服器ip地址 發布:2025-08-17 19:45:35 瀏覽:497
聊城電腦伺服器 發布:2025-08-17 19:34:59 瀏覽:407
互聯網編程語言 發布:2025-08-17 19:18:40 瀏覽:851
python主流框架 發布:2025-08-17 19:11:51 瀏覽:176
開源海量文件存儲 發布:2025-08-17 19:07:05 瀏覽:193
帶密碼的發票有什麼用 發布:2025-08-17 18:53:18 瀏覽:689
免費php模板下載 發布:2025-08-17 18:47:31 瀏覽:240
ubuntuphp開發 發布:2025-08-17 18:34:44 瀏覽:499
c語言小程序游戲 發布:2025-08-17 18:23:09 瀏覽:802
ios今日頭條源碼 發布:2025-08-17 18:23:02 瀏覽:311