Unity - Apk包的代碼與資源提取

  最近在研究如何給Unity遊戲進行加密,讓別人不能輕易破解你的apk包,不過網上的加密方法都是有對應的破解方法~_~!!結果加密方法沒找到好的,逆向工程倒會了很多。今天就來說解如何提取一個沒作任何保護的apk包中的資源和代碼。git

  

  (1)打開apk包github

  首先,將你的apk包重命名爲zip或者rar類型的文件,而後進行解壓縮,以下:測試

重命名爲,而後進行解壓縮,獲得以下的目錄內容:加密

各個部分的說明以下表:spa

assets Unity遊戲裏面的資源和代碼
lib   arm和x86須要的so文件
META-INF 信息包
res 存放icon等資源
AndroidManifest.xml 清單文件
classes.dex Android Dalvik字節碼
resources.arsc 編譯後的二進制資源文件

咱們主要關注的是assets目錄,裏面有咱們想要的資源和代碼。xml

  

  (2)提取代碼blog

  Unity把咱們大部分的代碼都放到了這個dll文件中(固然還有其餘代碼放到了first-pass之類的代碼,但不是主要的),咱們能夠在assets\bin\Data\Managed這個路徑下找到全部須要的dll文件。要解析dll文件,我用到了這個軟件(自行百度下載),用該軟件打開獲得如下這樣的界面:遊戲

經過點擊右鍵進行導出,選好導出目錄,等待一會,就能獲得如下的源代碼:ip

個人測試項目就只寫了一個Test.cs,能夠看見上面已經成功導出了,打開一看:資源

我滴乖乖,徹底和我寫的如出一轍,一點不變地導出來了。(因而可知代碼混淆和加密的重要性了)

 

  (3)提取資源

  要提取資源,咱們須要用到Unity Studio,可在下載地址他的Github上下載。

 打開Unity Studio,點File/Load folder,選中assets\bin\Data該目錄,而後就能獲得以下界面:

其中Scene Hierarchy能夠查看遊戲裏面場景的分佈狀況,而Asset List能夠查看資源。

好比個人測試工程裏面,只在空場景裏放了一個汽車模型,能夠從這個文件分析出個人場景結構以下:

而打開Asset List,能夠找到我放進去的一張藍色按鈕貼圖:

固然,除了貼圖,像音頻文件、xml文件、着色器等都能查看到,不過模型目測不能提取出來(這就要用disunity了)

  

  總結:unity遊戲太容易被分析出來了,若是項目十分重要,那代碼混淆、加密等工做仍是十分重要的。

相關文章
相關標籤/搜索