付費水果忍者破解

前言

閒着無聊手機上下載了一款手機遊戲玩玩,正在玩的時候突然彈出了付費對話框,剛開始我還納悶怎麼沒廣告,這麼良心,原來是在這裏等着呢,如下圖:
這裏寫圖片描述
作爲一個逆向初學者突然有一股衝動,能不能發揮專業技能解決下問題

分析

總體思路

很明顯改遊戲是通過彈出dialog阻止用戶進行遊戲,關掉對話框遊戲也會隨之退出,所以我們的目標就是阻止dialog彈出

從界面定位

用jeb查看apk源碼發現沒有加密,還用apktool反編譯apk得到smali代碼,反編譯命令如下:

java -jar apktool.jar d -f xxx.apk -o 輸出路徑

根據dialog上的關鍵詞“確認支付”在jeb中進行字符串搜索,定位到代碼並反編譯成java代碼,結果如下:
這裏寫圖片描述
很明顯這段代碼是向一個LinearLayout佈局中添加一個TextView控件,繼續查看該函數所屬的類如下:
這裏寫圖片描述
和預測一樣該類繼承自dialog,我們知道dialog要想顯示出來必須要調用show()方法,於是查找一下對e類的引用:
這裏寫圖片描述
第三條看起來比較像重寫show方法,雙擊定位到代碼:
這裏寫圖片描述
繼續跟蹤調用show方法的位置,發現只有一處位置調用:
這裏寫圖片描述
雙擊定位到代碼,發現調用了e的show方法的位置:
這裏寫圖片描述
我們只需要找到該smali文件將對應代碼註釋即可,文件位置同該文件第一行的包名:
這裏寫圖片描述
文件名即類名ActiveWrapper
打開文件搜索如下關鍵詞:

Lcom/idreamsky/gamecenter/ui/e;->show()V

定位到代碼,將該行註釋即可,註釋符號爲“#”
這裏寫圖片描述
保存文件後使用apktool進行回編譯,生成修改後的apk,命名如下:

java -jar apktool.jar b -d out -o debug.apk

改apk並不能直接安裝,需要簽名後再安裝,簽名命令如下:

java -jar ..\SignApk\signapk.jar ..\SignApk\platform.x509.pem ..\SignApk\platform.pk8 debug.apk debug.sig.apk

簽名後的apk可以正常使用了
原版apk下載地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章