天天看點

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

前言:這一期的破解教程,有新的知識内容出現啦!

這一期破解的遊戲是找不到之前的關鍵字,怎麼破解呢?

破解成功之後,添加一個Toast彈窗提示由XX破解,這操作該如何實作呢?請往下看~

連結: https://pan.baidu.com/s/1dF8jKdF 密碼: 6666

破解步驟:

1.試玩,找不到關鍵字

由圖檔可以看出,這是中國移動的咪咕遊戲,這款遊戲是接入了咪咕遊戲基地的sdk,如果你不懂sdk,那麼我也不會解釋,百度是你的好老師!

遊戲使用了咪咕遊戲基地的sdk,其中的smail檔案一般都有Billing這個關鍵字,那麼我們試着搜尋看看

2.查找Paycallback關鍵字

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

 可以看到,我們經過檔案類型篩選之後,還是有許多的結果,這時我們可以再原來的關鍵字上再加上個pay進行搜尋

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

嗯,這下子結果就是少了很多了,咪咕遊戲這類sdk,關于支付的類名一般都是含有callback,是以我們可以定位到圖中的三個含有callback的檔案,第一個我就不圈出來了

 我們一個個使用工具去檢視其的java僞代碼,則可以再次精确定位到ChinaBillingPayCallBack$1這一個檔案

3.了解支付邏輯

我們檢視ChinaBillingPayCallBack$1這個smail檔案的僞代碼

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

可以看到,是if與else if的嵌套的分支語句,每個判斷都是給i指派,估計大家看得不太懂,說實話,其實我也不太懂,那個for循環裡面有個setResultCode,其中的參數為i,個人覺得這個應該是支付成功的關鍵代碼,問題就來了,我們不知道i等于幾時,這個setResultCode才是支付成功,這個時候,我們有什麼辦法嗎?答案很簡單,一個個地試,我們将i的值改變,測試APP,就是可以知道i為1的時候,就是會進入支付成功的方法

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

回到smail檔案中,與之前的java僞代碼對比,可以發現v1就是那個i值,之後,就好辦了,我們跳過所有的判斷語句,修改v1的最後的值進行測試

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

PS:const/4 v1,0x1 這個的意思為給v1指派為1,如果是const/4 v1,0x2,就是給v1指派為2,我這裡隻是簡單的說明,想要深入的可以百度搜尋一下smail中const指令

我們測試到1,就會發現支付已經成功了,這也算是成功破解了,不過,我覺得還是得再分析分析這smail檔案

4.破解思路

 我們分析一下上述的smail檔案,首先,v1接收參數p1的值,之後,判斷參數p1與v2的值,相等的話也就是v1為1,之後向下執行,從前面我們知道,v1為1的時候,就是支付成功的代碼,我們可以删除掉這一行的判斷進而實作破解的功能,不相等的話就是跳轉到cond_1,記住末尾的cond_0和goto_0這兩個,之後會提到

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

 我們從上面跳轉到了cond_1這裡,v2就是被指派為3了,之後,參數p1又是接着與v2比較,相等則是往下執行,也就是給v1指派為3,跳轉到goto_0,也就是之前上面說的地方,不相等就是跳轉到cond_2,以此類推,大家應該能理清楚大概邏輯了吧

PS:大家可能不知道if-ne這個語句的作用,可以直接使用滑鼠放在上面,之後就會浮出提示

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

兩種方法破解:

上面都有提及到了,這裡寫個總結

1.删除第一個判斷語句,不跳轉到之後去判斷,,v1就是為1

2.在所有判斷結束之後,給v1指派為1

5.增加Toast提示

接下來就是新學的内容了,重點來了!!

首先,先确定開始的界面是哪一個activity,我使用了目前activity 這款APP,之後運作遊戲,左上角就是會有提示,我們可以知道CTRMActivity這個

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

第二步,我們需要找到這個activity對應的smail檔案,直接搜尋(如果你不嫌麻煩的話,可以找包名,依次地尋找)

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

我們在a檔案夾那裡,右擊,之後選擇打開方式->打開檔案路徑

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

第四步,建立一個txt格式檔案,修改檔案名為craker,之後把擴充名改為smali(呃,好像發現我之前都是寫成了smail,大家注意下啊,我就不修改了)

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

傳回到Androidkiller中,點選右邊的重新整理按鈕

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

之後,你就發現有craker這個smali檔案了,打開它,寫上下列代碼,可以看到,有個toast的字元串,我們隻需要将這裡修改成我們想要Toast提示的資訊,如果是中文的話,需要轉換成Unicode,直接使用Androidkiller自帶的工具轉換吧,前面幾篇也是有說過,我就不多說了

.class public Lcrack;
.super Ljava/lang/Object;
.source "craker.java"
 
.method public static toast(Landroid/content/Context;)V
    .locals 2
    .prologue
 
        const-string v0, "by stars-one"
 
        const/4 v1, 0x1
 
        invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
 
        move-result-object v0
 
        invoke-virtual {v0}, Landroid/widget/Toast;->show()V
 
        return-void
.end method      

 最後,我們在CTRMactivity中的onCreate方法裡寫上調用的代碼,就大功告成了

invoke-static {p0}, Lcrack;->toast(Landroid/content/Context;)V       

诶,等等,onCreate方法呢?沒有??擦嘞,不可能。。好吧,我們找錯了,我們再運作一遍遊戲,我看到了一個ChannelSplash,就決定是它了,去Androidkiller找找看(下面的圖檔是我已經修改成功了的圖檔,請忽略彈出的Toast)

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

 這次找對了,這裡有onCreate方法,之後的步驟與上面的一樣,這裡我就不多說了,注意一下最後調用代碼添加的位置,還有記得删除掉之前在CTRMactivity中添加的代碼

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

成功了,不過想到了activity的模式,好像onstart方法也是可以用,剛才的那個CTRMactivity就是有一個onstart方法,我把前面的删除,之後按照之前的步驟,嘗試在CTRMactivity中裡面寫上了調用的那一段代碼

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

之後,測試的時候,發現成功顯示

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

 6.删除權限,測試

我們可以把這個APP的名字更改了,這樣顯得比較高端哈!

直接搜尋割繩子就行了,之後進入到string檔案,修改app_name

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

這裡不得吐槽一下,這個遊戲好像删除發送短信會出錯,進入遊戲的時候提示應用已停止,暫時還不知道解決,有哪位大神看到這裡能知道如何解決這個問題,希望能夠告知~~感激不盡!!

還有,懸浮窗廣告還不知道怎麼破解,有大神能教教我嗎~~

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

提問之前,請先看提問須知

點選右側圖示發起提問

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

或者加入QQ群一起學習

Android破解學習之路(五)——Android遊戲 割繩子:魔法 + 在遊戲加入Toast彈窗提示

TornadoFx學習交流群:1071184701