1. 程式人生 > >Android逆向Unity3D——XXX快跑破解

Android逆向Unity3D——XXX快跑破解

感謝蛋總~

0x00 前言

說明

Unity3D是一款3D引擎,用來開發3D遊戲,同樣的還有Unity2D用來開發2D遊戲的。咳咳,我又來囉嗦了。說白了就是說你玩的有模型的Android手遊基本都是Unity3D開發的。
有開發就有破解。
所以我們走著先。

內容

1.環境介紹(無聊選擇跳過)

2.貝瑞快跑——金幣初始化99999

你能學到什麼?

1.萬軍叢中取敵將首級
2.修改dll檔案

3.貝瑞快跑——草莓初始化99999

你能學到什麼?

1.學以致用
2.如果從coin發現的各種好東西

0x01 環境介紹

長話短說。這裡沒意思。

.netframwork 4.0以上。

.net relector 最好是破解的,有需要可以留言。或者戳這裡,可能有,看我會不會勤快了。

剩下的就是常用的Android逆向的環境配置了。

0x02 貝瑞快跑——金幣初始化99999

試玩,我就不演示了,自己玩。

first

首先反編譯。

我們來看Assembly-CSharp.dll這個檔案。為什麼要看這個?因為這個檔案就和main函式一樣。
這裡寫圖片描述

這裡就是這個檔案的位置。

second

把檔案拖到reflector中。

然後使用搜索功能。

搜尋這裡選擇搜尋方法。
這裡寫圖片描述

這裡我們要知道什麼是coin,coin就是我們的金幣的意思。

搜尋coin會出現很多的字串。我們要做的就是從這麼多種找到我們需要的coin。

思考:

coin可能會出現在什麼地方?
coin出現的地方:
1.初始化的時候
2.遊戲結束的時候獲取
3.遊戲商店的購買
那麼初始化,肯定會有一個類。
類的特性裡有一個是封裝,也就是getXXX or setXXX。
還有一個很重要的地方,就是類名。

思考完了之後我們進行動手。

這裡寫圖片描述

set,get,我們找到這裡。

set是放進去,get就是拿出來。

我們再往下看看
這裡寫圖片描述
還有一個set,get,但是這次set,get的是tatolCoin,不知道單詞的翻翻字典。

tatolCoin就是總金幣數目。

我們先來嘗試改getCoin的值。

你說你想像改smali程式碼一樣?不好意思,這個還真改不了。必須要從彙編下手,這也是Unity3D比其他難一點的原因了。

Third

修改的方法就是通過彙編指令來進行修改。

這裡需要使用一個外掛就是
這裡寫圖片描述

我們利用這個外掛來改。

思考

改什麼?怎麼改?

我們既然要修改金幣的數量,那麼我們只要讓他返回具體數值,就好。

但是我們如果直接返回具體的數值,就會出現金幣不會增加,一直都是99999的問題,所以我們這裡可以使用Add的方法去增加金幣。

這裡寫圖片描述

我們在原來的邏輯上插入一段彙編。

首先來看看idc.i4是個什麼東西。
這裡寫圖片描述

然後選擇int,選擇數值,選擇在之後進行新增。

這裡寫圖片描述

然後在之後選擇一個add,加法運算即可。

這裡寫圖片描述

save儲存。

end

回編譯進行測試。

這裡寫圖片描述

開啟遊戲之後,我居然居然。。。。玩了一把。。。感覺還可以。。。。這裡修改成功了,而且可以增加金幣。

0x03 貝瑞快跑——草莓修改99999

之前修改了金幣,草莓也得改一改。為了熟練練習。我們來進行對草莓進行更改

first

我們之前找到了getcoin的位置。

這裡寫圖片描述

然後根據getcoin,我們發現了getFruits。其實還有很多東西都可以改。

使用之前的方法進行修改。
這裡寫圖片描述

這裡看到我們是修改成功的。

second

測試進行回編譯。

這次我就不玩了。直接看結果。

這裡寫圖片描述

end

還有很多東西等待著發掘,比如跑步速度等等等。