打包解包 網易遊戲的四種解密 解包,附工具

2021-10-14 15:54:31 字數 1475 閱讀 7543

​遊戲中大概有3種檔案,分別是pyc,nxs,npk,還有一些配置檔案就不說了

這裡的pyc是修改過opcode的,pyc檔案加密後就是nxs檔案,nxs檔案會被打包到npk檔案中

我們從裡向外說吧,先放出github鏈結

neteasepycobject,這個資料夾中的檔案是用來還原pyc opcode的,使用方式如下:

netpyc 輸入檔案 輸出檔案 [是否加密]

第三個引數是可選的,預設為0,代表解密,如果為1代表加密,就是將正常的opcode修改為遊戲中python的opcode

這個工具的部分pyobject的偏移有問題,大部分檔案不會出現問題,懂這方面的大佬可以自行修改下,後面修改過後也會在github更新的

用netpyc修改opcode過後,可以使用uncomply6,進行反編譯

還有乙個問題就是部分pyc檔案會有乙個或兩個位元組碼不是python中的位元組碼,極少數的檔案會出現這種問題,這個時候在反編譯的時候就會報error,如果報了error可以觀察解析失敗的opcode附近的**,可以自行修改

如果被修改過的位元組碼不在opcode中,就要手動分析了,當然這種情況出現的很少

接下來就是nxs檔案了,nxs檔案直接使用neteasenxsunpack中的neteasenxsunpack.py進行解密,使用方法如下

python2 neteasenxsunpack.py 輸入檔案 輸出檔案

之後使用netpyc解密opcode,然後反編譯就行了

直接使用neteasenpkunpack中的neteasenpkunpack.py,使用方法如下

python2 neteasenpkunpack.py 輸入檔案 輸出資料夾,解密後的檔案無字尾,檔案型別需要自己分析

網易遊戲基本上會有script.npk,解包方法如下

先解包npk,解包後資料夾中的所有檔案都是nxs檔案,在進行nxs檔案解密的步驟就行了

這些是三種檔案,還有一種是這樣的,這裡說的是windows的版本,在nxfilesystem.dll中會有乙個decodebuffer函式,這個就是第四個,這個函式的上層是openwithloader

openwithloader作用是開啟檔案,檔案校對,和部分初始化,在openwithloader中並不是所有的資料都要經過decodebuffer函式,部分資料需要解密,多數會是一些配置檔案

在openwithloader中,捕獲資料如下,在openwithloader的ret位元組下斷點,檔名,檔案大小,會儲存在[eax+4]的位置,如果我沒記錯的話

這些資料夾和檔案的名字都是被加密過的,可以在nxfilesystem.dll中搜尋匯出的包含path的函式,具體名字忘記了,函式功能是這樣的,傳入正常路徑,傳出加密路徑

ios打包ipa的四種實用方法

xcode選單欄 product archive 三選一,一般選後兩個。2 itunes拖入 以前可以,這種方法十分方便。具體步驟請看動態圖 3 自動編譯指令碼 編寫乙個全自動編譯指令碼,從而不用開啟xcode編譯執行即可實現打包,這種方法也十分快捷。有興趣的可以看這篇文章。缺點 不出錯還好,一旦有...

SharedPreferences的四種模式

開發應用需要儲存一些配置引數,如果是window軟體通常我們會採用ini檔案進行儲存,如果是j2se應用,我們會採用properties屬性檔案進行儲存。如果是android應用,我們最適合採用sharedpreferences儲存資料,它是乙個輕量級的儲存類,特別適合用於儲存軟體配置引數。使用sh...

SharedPreferences的四種模式

開發應用需要儲存一些配置引數,如果是window軟體通常我們會採用ini檔案進行儲存,如果是j2se應用,我們會採用properties屬性檔案進行儲存。如果是android應用,我們最適合採用sharedpreferences儲存資料,它是乙個輕量級的儲存類,特別適合用於儲存軟體配置引數。有兩種方...