aiwanqq 发表于 2017-6-24 16:45

三笨贼2-去购买窗 破解 去权限

本帖最后由 aiwanqq 于 2017-6-24 16:59 编辑

小白最近看到有大神发三笨贼2 的破文,于是想拿他来练练手 下面是个人练习过程,请大家多多指教。最终效果如下:

目标
1. 破解
2. 去掉购买框
3.去掉不需要的权限
4.添加自己的签名

1.之前有大神已经分析过如何破解了,就不再赘述。
   http://www.52pojie.cn/thread-607019-1-2.html

2.经过跟踪发现,在购买道具的时候,过程如下:
addAdvertisement()->handler.sendMessage()->this.order()->购买过程->billingSucceed() 或者->billingFailed();
其中billingSucceed() 为购买成功,billingFailed()为购买失败。

那么我们是不是可以跳过购买过程,直接在this.order()里面调用billingSucceed()呢?说干就干。
billingSucceed()是sbz2类中的一个函数,参数为String,那么我们调用的时候传一个任意字符串进去即可(分析billingSucceed()可知)。

修改前:
.method public order(Landroid/content/Context;Lmm/purchasesdk/OnPurchaseListener;)V
    .locals 4
    .param p1, "context"    # Landroid/content/Context;
    .param p2, "listener"    # Lmm/purchasesdk/OnPurchaseListener;

    .prologue
    .line 192
    :try_start_0
    sget-object v1, Lcom/caimeng/sbz2/sbz2;->purchase:Lmm/purchasesdk/Purchase;

    iget-object v2, p0, Lcom/caimeng/sbz2/sbz2;->goodInfos:[Ljava/lang/String;

    sget v3, Lcom/caimeng/sbz2/sbz2;->sbillingIndex:I

    aget-object v2, v2, v3

    invoke-virtual {v2}, Ljava/lang/String;->trim()Ljava/lang/String;

    move-result-object v2

    .line 193
    iget-object v3, p0, Lcom/caimeng/sbz2/sbz2;->mListener:Lcom/caimeng/sbz2/IAPListener;

    .line 192
    invoke-virtual {v1, p1, v2, v3}, Lmm/purchasesdk/Purchase;->order(Landroid/content/Context;Ljava/lang/String;Lmm/purchasesdk/OnPurchaseListener;)Ljava/lang/String;
    :try_end_0
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0

    .line 199
    :goto_0
    return-void

    .line 195
    :catch_0
    move-exception v0

    .line 197
    .local v0, "e":Ljava/lang/Exception;
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V

    goto :goto_0
.end method


修改后:
.method public order(Landroid/content/Context;Lmm/purchasesdk/OnPurchaseListener;)V
    .locals 2

    const-string v0, "\u8d2d\u4e70\u6210\u529f"

    invoke-virtual {p0, v0}, Lcom/caimeng/sbz2/sbz2;->billingSucceed(Ljava/lang/String;)V

    const/4 v1, 0x0

    invoke-static {p1, 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

编译签名之后,测试OK

3.在安装时发现有两个我不喜欢的权限,打算去掉。发送短信和开机启动。
    打开AndroidManifest.xml删除如下两条即可。
   <uses-permissionandroid:name="android.permission.SEND_SMS"/>
       <uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

4.sbz2的onCreate()函数中用Toast显示一个字符串即可。 到此,练习完成。


重新编译,签名,下载到模拟器或者手机中即可开心玩耍了。

最后附上成品。http://pan.stnts.com/s/1tim8aA解压码 52pojie.cn


冥界3大法王 发表于 2017-12-30 20:36

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
    <uses-permission android:name="android.permission.SIGNAL_PERSISTENT_PROCESSES"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
只要这几行就可以的。

冥界3大法王 发表于 2017-6-24 16:50

@aiwanqq

本帖最后由 冥界3大法王 于 2017-6-24 17:19 编辑

我也想问一下楼主,第19关,就是顶层有个踩上会传送到过关门的那个地方(门在右面,从右面开门进入后左面有个鼓起来会闪光的地方!),那关有个bug能否修复下?
网上下载到的,和自己破解过的所有版本都会闪退!
@aiwanqq @aiwanqq @aiwanqq

夏雨微凉 发表于 2017-6-24 16:50

插眼~学习啦

冥界3大法王 发表于 2017-6-24 17:16

@aiwanqq
而且破解版本的1代,第2-4关,游戏人物胖子直接消失掉了,导致安卓的版本无法玩下去
而ipad的上的版本超级流畅不说,无此bug.

sj1979 发表于 2017-6-24 17:58

看着不错,谢谢分享

1131167615 发表于 2017-6-24 18:04

感谢分享

潮流、 发表于 2017-6-24 18:28


感谢分享~

一次过 发表于 2017-6-24 18:28

感谢分享

怕的瑟瑟发抖丶 发表于 2017-6-24 18:59

感谢分享

auqbtbt 发表于 2017-6-24 19:30

路过支持了。
页: [1] 2 3 4
查看完整版本: 三笨贼2-去购买窗 破解 去权限