分身有术pro 软件多开 去更新 登录就是vip 【教程】 仅供学习

作者 : 郭然 本文共3694个字,预计阅读时间需要10分钟 发布时间: 2020-07-3 共645人阅读
这软件好像挺火,我也蹭一波热度


软件为当前最新版3.13.0,未来软件更新后方法可能会改变。作者应该混淆过dex,不过关键的地方好像没混淆?
可以适当的添加签名校验以及文件名混淆来加强app的安全性,但是此软件没有签名校验,随便改。
原版软件:https://www.coolapk.com/apk/com.droi.adocker.pro
建议支持正版,可以保存数据。

一、开启至尊会员

首先反编译软件,电脑上先把apk里面的A3AEECD8删掉,要不然反编译会失败,这个文件是谷歌加密的。然后方法名搜索getVipStartTime,定位到com/droi/adocker/data/model/user/User。

我们要改的方法是这三个。
.method public getVipEndTime()J【获取vip到期时间】
.method public getVipMode()Lcom/droi/adocker/data/a/c$c;【获取vip等级】
.method public getVipStartTime()J【获取vip开始时间】

首先是vip开始时间,之前有人已经改过了,赋值2099年,可以换另一个思路,开始时间改成当前手机系统的时间,到期时间为明天。
然后写个smali代码,让app获取当前系统时间,所以改为:

  1. .method public getVipStartTime()J
  2.     .locals 2
  3.     invoke-static {}, Ljava/lang/System;->currentTimeMillis()J【当前系统时间】
  4.     move-result-wide v0
  5.     return-wide v0
  6. .end method

复制代码

到期时间我给他加上24小时,就是明天,让他明天到期。改成如下:

  1. .method public getVipEndTime()J
  2.     .registers 5【注意数量】
  3.     invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
  4.     move-result-wide v0
  5.     const-wide/32 v2, 0x5265c00【24小时×60分钟×60秒×1000,16进制表达式】
  6.     add-long/2addr v0, v2【运算】
  7.     return-wide v0
  8. .end method

复制代码

让app的开始时间和到期时间左右互搏,不管怎么样都不会到期。

最后getVipMode添加一句代码,让他显示至尊会员。

  1. .method public getVipMode()Lcom/droi/adocker/data/a/c$c;
  2.     .locals 1
  3.     .line 122
  4.     iget-object v0, p0, Lcom/droi/adocker/data/model/user/User;->vipMode:Lcom/droi/adocker/data/a/c$c;
  5.     sget-object v0, Lcom/droi/adocker/data/a/c$c;->SUPREME_VIP:Lcom/droi/adocker/data/a/c$c;【显示至尊会员,代码来源于intToMode(I)Lcom/droi/adocker/data/a/c$c;方法】
  6.     return-object v0
  7. .end method

复制代码

改完后回编译测试一下效果,vip功能可正常使用。

二、禁止检测更新

懒人可以直接修改版本号,最快的方法。不过我介绍一下如何修改dex达到禁止更新的目的。

为了更好的查找来源,找了个旧版软件。会弹出上图提示,而且无法关闭,只能强制更新。通过app运行记录,可以发现弹出的窗口来自com/droi/adocker/ui/main/setting/upgrade/UpgradeActivity的onCreate方法。

软件更新有启动自检查和手动检查2种方式,既然有强制更新的行为,不知道手动检查的意义何在

如上图,onCreate这个地方不怎么好修改,如果直接删掉代码会导致FC或者显示异常等情况,所以另找办法。

注意到按钮文字“立即更新”,代码搜索一下看看会有什么结果。

有1个关键结果,然后打开方法列表,可以看到有更新的方法,checkUpgrade(ZZ)VgetUpgradeInfo()Lcom/tencent/bugly/beta/UpgradeInfo;,这个就是检测更新的老巢。其中,.method public static checkUpgrade(ZZ)V的代码非常长,有很多东西在里面,但是修改的方法也很简单,直接return-void就可以了。

再来看getUpgradeInfo,代码如下:

  1. .method public static getUpgradeInfo()Lcom/tencent/bugly/beta/UpgradeInfo;
  2.     .locals 3
  3.     .line 253
  4.     :try_start_0
  5.     sget-object v0, Lcom/tencent/bugly/beta/upgrade/c;->a:Lcom/tencent/bugly/beta/upgrade/c;
  6.     const-string v1, “st.bch”
  7.     sget-object v2, Lcom/tencent/bugly/beta/upgrade/BetaGrayStrategy;->CREATOR:Landroid/os/Parcelable$Creator;
  8.     .line 254
  9.     invoke-static {v1, v2}, Lcom/tencent/bugly/beta/global/a;->a(Ljava/lang/String;Landroid/os/Parcelable$Creator;)Landroid/os/Parcelable;
  10.     move-result-object v1
  11.     check-cast v1, Lcom/tencent/bugly/beta/upgrade/BetaGrayStrategy;
  12.     iput-object v1, v0, Lcom/tencent/bugly/beta/upgrade/c;->b:Lcom/tencent/bugly/beta/upgrade/BetaGrayStrategy;
  13.     .line 255
  14.     sget-object v0, Lcom/tencent/bugly/beta/upgrade/c;->a:Lcom/tencent/bugly/beta/upgrade/c;
  15.     iget-object v0, v0, Lcom/tencent/bugly/beta/upgrade/c;->b:Lcom/tencent/bugly/beta/upgrade/BetaGrayStrategy;
  16.     if-eqz v0, :cond_0【判断v0的值】
  17.     .line 256
  18.     new-instance v0, Lcom/tencent/bugly/beta/UpgradeInfo;
  19.     sget-object v1, Lcom/tencent/bugly/beta/upgrade/c;->a:Lcom/tencent/bugly/beta/upgrade/c;
  20.     iget-object v1, v1, Lcom/tencent/bugly/beta/upgrade/c;->b:Lcom/tencent/bugly/beta/upgrade/BetaGrayStrategy;
  21.     iget-object v1, v1, Lcom/tencent/bugly/beta/upgrade/BetaGrayStrategy;->a:Lcom/tencent/bugly/proguard/y;
  22.     invoke-direct {v0, v1}, Lcom/tencent/bugly/beta/UpgradeInfo;-><init>(Lcom/tencent/bugly/proguard/y;)V
  23.     :try_end_0
  24.     .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
  25.     return-object v0
  26.     :catch_0
  27.     :cond_0
  28.     const/4 v0, 0x0【v0=0表示无更新,1的话就有更新】
  29.     return-object v0
  30. .end method

复制代码

怎么改应该不用多说了,太简单。改好后回编译测试,已经不再提示更新了,而且手动点击更新无反应。

三、去广告

在没开通会员的情况下去广告,这个教程有点水了。资源文件夹内首先删除jar文件,然后再删一下qq.e.ads的权限即可。

有没有用不知道,如果还是有广告可以用幸运破解器一键爆破

如果幸运破解器都没办法的话只能手动改dex,教程贴在本站数不胜数,不再重复了,这个不难。

本文转载自吾爱破解,原文地址:https://www.52pojie.cn/thread-1211527-1-1.html

 

赞赏

微信赞赏支付宝赞赏

VIP部落提供编程技术、教育培训、优惠购物以及各类软件和网站源码、模板等资源下载。
VIP部落 » 分身有术pro 软件多开 去更新 登录就是vip 【教程】 仅供学习

常见问题FAQ

提供最优质的资源集合

立即查看 了解详情