?

免費教程_免費網賺教程_破解版軟件-寂涯網絡學習基地

當前位置: 主頁 > 系統綜合 > 軟件破解 > 一款游戲資源解包工具的開發始末

一款游戲資源解包工具的開發始末

時間:2012-03-11 21:59來源:未知 整理:寂涯網絡 點擊:

最近為了支持下漢化游戲,加入了一個漢化組做技術,主要的工作就是解包游戲資源, 提取其中的資源文本交給翻譯人員來翻譯,因此我就將自己一次分析游戲資源包格式到寫出解包程序的過程整理成文,與大家共享。
我們今天的目標是一款名為《夜神任務:同心同靈》的游戲,下載地址: http://www.verycd.com/topics/2854279/。游戲并不大,這樣利于我們由淺入深地進行學習。
分析游戲用到的工具有:
1.查殼工具PEiD,同時還要用它來識別程序中使用的壓縮算法;
2.調試器OD 1.10;
3.靜態反匯編工具IDA;
4.16進制編輯器WinHex
1.最后要用一種編程語言寫出自己的解包工具,為了鍛煉自己的匯編語言編程能力,開發語言我選擇了win32匯編,使用了匯編的IDE--Radasm和匯編的sdk——MASM32 v10。大家只要明白了資源文件的結構,可以選用自己所擅長的編程語言來寫解包器。
靜態分析
安裝完游戲之后,在游戲的根目錄我們能看到如圖1所示幾個文件和目錄,從大小和名字來看,可以很容易的確定資源文件是放在DATApc文件夾中。
圖1
在Datapc文件夾中有三個比較大的pak文件,這三個文件就是游戲的資源包了,也就是我們要解包的對象。在很多情況下?六<文件文件是可以用winrar、好壓或者72解壓的, 這類PAK文件用WinHex之類的16進制打開后可以發現開頭的兩個字母都是“PK”,而且右 鍵菜單中會有用winrar之類的壓縮軟件解壓的選項。但是這個游戲的資源文件不屬于這種類型(是的話就不會有這篇文章了)。我們用WinHex打開三個PAK文件,找一下三個文件 的共同特征,首先會發現文件開頭部分格式比較相似,都是以“KCAP”四個字母開頭,這 應該是這類文件的一個標志,后面是一個hex值為00 00 00 01的雙字,用途未知,從偏移0x20開始到0x1f處都是0,只有0x8偏移處的一個雙字有所不同,都在偏移0x20處開始有格式比較相同的數據,如圖2。
圖2
在這里,我們可以假定前面20h個字節的內容為固定的文件頭大小,繼續往下看,會發 現三個PAK文件都是些以HEX值為78 9C開頭的數據塊,這些數據塊大多數都是長度不定,并以不定數量個0結尾。到了接近末尾的時候,才出現了一些不一樣的數據。這些數據中還包括一些可讀字符,看起來應該是文件名,而且每隔0\120字節就是下一個文件名,直到文件結束。文件名的后面是長串的0,應該是填充文件名緩沖區的。在從文件名開頭往后0x100
字節處開始出現其他信息,但是目前還不知道這些信息是做什么的,最后的16字節也是全部是0。如圖3
圖3
根據上面的分析,可以大體的推斷這種PAK文件由三部分組成:第一部分從偏移0到 0x1F處是文件頭;第二部分是包含了大量以HEX值為78 9C開頭的數據塊的部分則是保存資源壓縮后的數據的部分;最后的部分因該是每一個文件的信息,應該根據這些信息將壓縮后 的數據解壓。當然這些都是猜測,只有實踐后才會知道猜測的是否正確。
通過這些分析,我們可以先簡單的定義出表示這些部分的結構體,暫時作用未知的部分 就叫做UnKnown:
文件頭部分
HEAD STRUCT  
dwFlag DWORD ?
dwUnKnownl DWORD ?
dwUnKnown2 DWORD ?
dwZero DWORD 5 dup(?)
HEAD ENDS  
文件信息部分
FILEI0F0 STRUCT  
szFileName BYTE  100h dup(?)
dwUnKnownl DWORD ? 
dwUnKnown2 DWORD ? 
dwUnKnown3 DWORD ? 
dwUnKnown4 DWORD ? 
dwZero DWORD 4 dup(?)
FILEI0F0 ENDS  
好,初步靜態分析過程已經完成,但是還有很多地方沒搞明白,這就需要我們動態跟蹤下游戲程序了。
動態跟蹤
跟蹤前,先用PEID查一下殼,顯示microsoft visual c++,應該沒加殼,前面分析道有很多數據塊,并且開頭都是78 9c,說明文件是被壓縮了,我們可以用peid的插件krypto ANALyzer插件看一下程序中都使用了哪些加密或者壓縮算法,結果找到了這些算法:
ADLER32 ::00233292 ::00633E92 
ADLER32 ::00233446 ::00634046 
CRC32 :: 0028CD58 :: 0068E158 
CRC32b : :0027DCE8 :0067F0E8 

本頁地址 http://www.ionrce.tw/ruanjianpojie/20120311795.html

百度搜索更多

谷歌搜索更多

頂一下
(7)
70%
踩一下
(3)
30%
------分隔線----------------------------
?
評價:
昵稱: 驗證碼:點擊我更換圖片
推薦內容
贊助商
贊助商
?

關于本站免責聲明視頻更新google百度地圖視頻地圖RRS訂閱

如有什么問題請在本站留言,或發郵件到 hxt167#foxmail.com

内蒙古十一选五基本走势图手机版