0x4.U3D游戲逆向修改深化-2

U3D游戲逆向修改深化-2 : U3D單機(jī)游戲修改分析實(shí)戰(zhàn)


本文主要介紹某網(wǎng)站下載的修改版游戲的分析過(guò)程,對(duì)于初學(xué)者來(lái)講,參照已修改游戲進(jìn)行學(xué)習(xí)是很有效的學(xué)習(xí)途徑。




本文樣本是某游戲網(wǎng)站下載的已修改的游戲,與基礎(chǔ)篇中的叢林方塊有些類似,都是修改了金幣的數(shù)量。

游戲樣本地址 鏈接:https://pan.baidu.com/s/1t7k4mg5htSrrQKeXtwkj8Q 密碼:tyxc

< 文中的apk修改僅用于研究學(xué)習(xí),如涉及權(quán)益侵犯請(qǐng)隨時(shí)聯(lián)系處理。 >


我們照舊先安裝看一下這個(gè)游戲都有哪些地方處理過(guò)或者需要處理:



發(fā)現(xiàn)兩個(gè)異常點(diǎn):1.打開游戲后有兩次破解版本更新提示   2.金幣被鎖定為100100100

接下來(lái)開始我們這節(jié)課的內(nèi)容:修改分析之?dāng)?shù)值搜索、代碼對(duì)比、關(guān)鍵字搜索。


0x1.數(shù)值搜索

在基礎(chǔ)課程中,我們已經(jīng)講過(guò)數(shù)值搜索了,這里我們?cè)僦v一遍,不過(guò)工具我們不再是用ildasm,而是dnSpy。

1.1  確認(rèn)腳本文件

‘a(chǎn)ssetsbinDataManagedAssembly-CSharp.dll’

1.2  搜索數(shù)值

打開dnSpy,將Assembly-CSharp.dll拖拽進(jìn)dnSpy打開,在搜索選項(xiàng)中選擇“數(shù)字、字符串”搜索100100100。


1.3  修改數(shù)值

得到結(jié)果 get_coins,雙擊后可查看已修改的函數(shù),在 “return 100100100”處右鍵單擊,然后選擇“編輯IL指令”,就可以看到IL指令。





如果要再次修改,將其修改為我們所需數(shù)值的十六進(jìn)制形式即可。


0x2.代碼對(duì)比

代碼對(duì)比在破解版游戲分析是非常有用,可以幫助我們學(xué)習(xí)破解版是怎樣進(jìn)行修改的。

那么,既然要對(duì)比,我們就需要有一個(gè)未破解的版本用來(lái)做參照才可以實(shí)現(xiàn)對(duì)比,于是我們找來(lái)了這個(gè)樣本的原版。

原版樣本地址 鏈接:https://pan.baidu.com/s/1dy43mrper5oMvLKigkF1vg 密碼:6ylh

< 文中的apk修改僅用于研究學(xué)習(xí),如涉及權(quán)益侵犯請(qǐng)隨時(shí)聯(lián)系處理。 >

接下來(lái)我們對(duì)比一下原版和破解版反編譯后的文件夾,看一下apk打開時(shí)的版本更新提示是哪些代碼實(shí)現(xiàn)的。對(duì)比工具我們采用Araxis Merge。



破解版插入了如下smali文件,并在兩處NativeActivity中對(duì)其進(jìn)行了調(diào)用,也就是我們看到的兩次更新提示窗口。



調(diào)用代碼如下:

const/16 v0, 0x485a
invoke-static {p0, v0}, Landroid/support/v4/os/UnityPlayerup;->c(Landroid/app/Activity;I)V

java代碼表示為(可在jd-gui中查看):

UnityPlayerup.c(this, 18522);


我們要去掉這個(gè)提示的話,刪除這個(gè)調(diào)用即可。在此不具體分析所插入版本更新窗口的代碼,有興趣的可以分析看一下。

dll腳本也可以進(jìn)行對(duì)比分析,需要用ildasm將其反編譯為il代碼,然后將原版和破解版的il文件進(jìn)行對(duì)比,具體不做演示,大家自己嘗試。


0x3.關(guān)鍵字搜索

這部分主要提供給大家一些可利用的搜索關(guān)鍵字,可用于金錢、屬性等各方面的搜索。

3.1  金錢類

金幣      gold、coin
鉆石      Gem、diamond

3.2  屬性類

生命      health、life、HP、Max HP
魔法      mp、sp、Power
冷卻      CD、CoolDown、CoolTime
攻擊      attack(atk)、fight、hit、damage
防御      defence(def)
速度      speed、movespeed、attackspeed
3.3  其他類

登錄      login、sendlogin、loginserver
彈窗      Dialog、ShowDialog
按鍵      Button
以上只是介紹部分關(guān)鍵詞,更多關(guān)鍵詞需要大家在實(shí)踐中總結(jié)積累。

?