1. 程式人生 > >Android破解學習之路(十四)——【Unity3D】王牌大作戰破解

Android破解學習之路(十四)——【Unity3D】王牌大作戰破解

一、前言

今天帶來的是王牌大作戰的破解教程,遊戲下載的話,我是直接去TapTap官網下載的

支付寶內購破解用老套了,今天學點破解的新花樣吧!!

二、支付寶內購破解

支付寶的內購破解已經很熟悉了, 直接搜尋“9000”,之後找到程式碼,修改判斷條件即可,若不明白,請看我之前寫的部落格,Android破解之路的學習

三、Unity3D破解

PS:破解之前先提醒一下,並不是所有的Unity3D遊戲都可以使用本方法進行破解,要滿足一個條件

是採用Mono打包方式的Unity3D遊戲

判斷是否滿足條件

  1. 判斷是否為Unity3D遊戲

    首先,如何判斷當前的遊戲是不是Unity3D遊戲,怎麼判斷呢?

    Androidkiller就是自帶有個分析功能,可以判斷當前的遊戲是Unity3D還是cocos2D遊戲

    用過Androidkiller軟體的朋友都知道,Androidkiller反編譯完成之後,就會提示是否分析檔案,這個功能就是分析當前的apk使用的遊戲引擎是unity3d還是cocos2d

     
     

  2. 是否採用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 框架,下載完之後就可以打開了

  1. 反編譯Assembly-CSharp.dll檔案

    開啟dnSpy軟體,把Assembly-CSharp.dll

    拖進去,展開,我們可以看到有許多的資源
     

    這麼多,我們也一個個開啟的開,難免頭大,這時候還是得使用搜索大法

  2. 搜尋關鍵字coin

    我們是準備修改金幣, 那麼直接搜尋coin(按下crtl+shift+k搜尋)

    搜尋coin,之後還是有很多結果,我們稍微看一下右邊,有個GameData.Resources,resources就是資源的意思,可能就在這裡面,我們點選進去看看
     
    我們可以找到Resource,展開目錄,就可以看見Star,Coin這些關鍵字,其實這些就是金幣,星星的數量,裡面還有有get_coin方法,字面意思就是獲得金幣,我們進方法裡面瞧瞧
     
     
  3. 修改程式碼

    修改有兩種方法,一種是直接右鍵,選擇編輯方法,另外一種則是修改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