Android破解學習之路(十四)——【Unity3D】王牌大作戰破解
一、前言
今天帶來的是王牌大作戰的破解教程,遊戲下載的話,我是直接去TapTap官網下載的
支付寶內購破解用老套了,今天學點破解的新花樣吧!!
二、支付寶內購破解
支付寶的內購破解已經很熟悉了, 直接搜尋“9000”,之後找到程式碼,修改判斷條件即可,若不明白,請看我之前寫的部落格,Android破解之路的學習
三、Unity3D破解
PS:破解之前先提醒一下,並不是所有的Unity3D遊戲都可以使用本方法進行破解,要滿足一個條件
是採用Mono打包方式的Unity3D遊戲
判斷是否滿足條件
判斷是否為Unity3D遊戲
首先,如何判斷當前的遊戲是不是Unity3D遊戲,怎麼判斷呢?
Androidkiller就是自帶有個分析功能,可以判斷當前的遊戲是
Unity3D
還是cocos2D
遊戲用過Androidkiller軟體的朋友都知道,Androidkiller反編譯完成之後,就會提示是否分析檔案,這個功能就是分析當前的apk使用的遊戲引擎是
unity3d
還是cocos2d
是否採用Mono打包方式
我們通過觀察
asset
資料夾是否包含有Assembly-CSharp.dll
這個檔案就可以判斷是否採用mono方式,有就是採用了mono方式,沒有就不是之後到工程管理器去檢視一下是否有Assembly-CSharp.dll這個檔案
如果有,則確定這遊戲是採用Unity的Mono打包方式的遊戲
使用的軟體:
Androidkiller
dnSpy
簡單介紹一下dnSpy,dnSpy軟體可以反編譯dll檔案,可以修改.net程式,網上都找得到,這裡就不放軟體連結了。
破解
Unity3D遊戲裡的獲得金幣和獲得鑽石等等的方法,還有相關的遊戲資源都是在這Assembly-CSharp.dll檔案裡面了,我們可以使用dnSpy軟體對dll進行反編譯,dll檔案原本也是使用C#這個程式語言開發的,屬於.net開發
我下載的dnSpy好像挺新的,我開啟的時候提示要下載.net 框架,下載完之後就可以打開了
反編譯
Assembly-CSharp.dll
檔案開啟dnSpy軟體,把Assembly-CSharp.dll
這麼多,我們也一個個開啟的開,難免頭大,這時候還是得使用搜索大法
搜尋關鍵字
coin
我們是準備修改金幣, 那麼直接搜尋coin(按下crtl+shift+k搜尋)
搜尋coin,之後還是有很多結果,我們稍微看一下右邊,有個GameData.Resources,resources就是資源的意思,可能就在這裡面,我們點選進去看看
我們可以找到Resource,展開目錄,就可以看見Star,Coin這些關鍵字,其實這些就是金幣,星星的數量,裡面還有有get_coin方法,字面意思就是獲得金幣,我們進方法裡面瞧瞧
修改程式碼
修改有兩種方法,一種是直接右鍵,選擇編輯方法,另外一種則是修改IL指令
開始的時候,我是選擇了編輯方法,但是修改之後,點選編譯,之後就報錯了
上網一查,瞭解到,有些dll資源混淆了,無法直接編輯方法編輯方法無法修改的話,只能通過IL指令修改了
然後我又去看了IL指令IL指令集
看了好久,才發現我想要的那一條指令
Ldc.I4 將所提供的 int32 型別的值作為 int32 推送到計算堆疊上。我們點選IL指令,檢視當前方法的IL指令
我們使用Ldc.I4 方法,寫上10000(之前寫9999,進入到遊戲只有1000金幣),點選Ldc.I4.0,然後會出現下拉選單,選擇Ldc.I4方法
點選確定之後,我們可以看到程式碼變了
改完金幣之後,我們還可以修改其他的星星的數目,還有皇冠的數目,修改完畢之後,點選檔案選單,選擇儲存模組之後,使用Androidkiller刪除一下發送簡訊等垃圾許可權,反編譯,安裝,可以看到我們修改成功了。
四、測試截圖
下載地址:
王牌大作戰破解版:
連結: https://pan.baidu.com/s/1y9ad2aBMbmzAwgR5Tm3s1Q 提取碼: m82r