綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[修改版] 一个简单的游戏支付宝内购方式apk的简单的内购解鎖思路

 關閉 [複製連結] 查看: 2012|回覆: 5|好評: 0
跳轉到指定樓層
樓主
圣光奇迹 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2015-8-18 18:15

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
本帖最後由 圣光奇迹 於 2015-8-19 13:18 編輯

0x1 购买时取消支付成功

因为是支付宝内购,所以搜索支付宝特征9000的16进制0x2328,结果明显是第一个smali

                               
登錄/註冊後可看大圖

此smali的第一个0x2328处,可见以下内容-


0x2328 -> 成功
0xfa0 -> 系统繁忙
0x1771 -> 用户取消
....

点击0x2328 -> :sswitch_0

见到
         


        0xfa1 -> :sswitch_3
          0x1771 -> :sswitch_1  #取消
          0x1772 -> :sswitch_2
          0x1f40 -> :sswitch_4
          0x2328 -> :sswitch_0  #成功

所以把此处的sswitch_1  修改为sswitch_0即可
或者sswitch_1下加goto :sswitch_0也行。

然后支付---取消支付,恭喜,变会员了!


0x2 打开程序就是注册版

利用第1步变成会员后,通过re管理器查看存档,重要内容如下



<boolean name="ad_close_show" value="true" />   
< int name="vip_grade" value="1" />   
< boolean name="ad_show" value="true" />
< boolean name="first_use" value="false" />
< int name="times" value="5" />
< int name="speak_language" value="2" />

此时有2种思路-

1.搜索vip_grade,赋值vip_grade等于1。(尝试,无果)


2.因为vip_grade是int name,可将一个不重要的的int name修改为vip_grade,并固定其永久等于1.
    此时因为vip_grade永久等于1,ad_show和ad_close_show的值可不用管,也能达到无广告。
于是搜索"times"吧。它是记录软件运行次数的值,无伤大雅的。

通过搜索"times"和分析,在MainActivity.smali中发现,
   


    const-string v2, "times"   

      const/4 v3, 0x0

      invoke-interface {v1, v2, v3}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I

      move-result v1





    const-string v1, "times"   

      iget v2, p0, Landroid/translate/xuedianba/MainActivity;->J:I

      add-int/lit8 v2, v2, 0x1

      invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences$Editor;->putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor;

它的意思就是"times"初始为0,每运行1次软件,"times"值增加1.

所以修改其为  "vip_grade" ,且令其初始为1,并永久为1.



    const-string v2, "vip_grade"   

      const/4 v3, 0x1

      invoke-interface {v1, v2, v3}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I

      move-result v1



    const-string v1, "vip_grade"   

      iget v2, p0, Landroid/translate/xuedianba/MainActivity;->J:I

      add-int/lit8 v2, v2, 0x0

      invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences$Editor;->putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor;

意思就是"vip_grade"初始为1,每运行1次软件,"vip_grade"值都为1.

修改后运行,测试下高级功能,ok,广告也没有了。

至此完成最终破解。

工具用吾爱的:
下载

「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)

評分

參與人數 1碎鑽 +3 經驗 +1 幫助 +5 收起 理由
水之漾 + 3 + 1 + 5 好文好文~讓我來讚爆你吧!

查看全部評分

收藏收藏6 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
q230431qq | 收聽TA | 只看該作者
發表於 2015-8-18 23:39
網址有問題喔!!{這個網頁無法使用}

點評

修复完毕  發表於 2015-8-28 19:20
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
 樓主| 圣光奇迹 | 收聽TA | 只看該作者
發表於 2015-8-19 13:12
q230431qq 發表於 2015-8-18 23:39
網址有問題喔!!{這個網頁無法使用}

等等补上
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
orangevillage | 收聽TA | 只看該作者
發表於 2015-9-14 10:44
這個可以學習一下~期待以後樓主分享更多經驗
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

5
18750222276 | 收聽TA | 只看該作者
發表於 2015-9-14 16:21
先行make  希望能发一些成品来借鉴, 虽然我几乎不怎么了解 。  
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則