好友
阅读权限40
听众
最后登录1970-1-1
|
本帖最后由 风绕柳絮轻敲雪 于 2019-10-8 12:33 编辑
1.首先我们看看高级功能有哪些,哦豁,看到一个去广告,就以这个为切入点了
为啥呢?因为我在启动页看到了这个东西,一般看到这个会员去广告这几个字就代表会员和启动页的广告有关联(就是根据是否有会员来显示或者载入广告的
2.找到该启动界面的活动类,并在其onCreate方法中发现了以下代码,主要看else if那段代码, || 左边就不用说了,断网了啥都没了,自然就没广告了,看看右边,向checkFunctionPointUseable这个方法传入了MCV_AD_CLOSE这个字符串,根据返回的布尔值来进行下一步是否载入广告
[Java] 纯文本查看 复制代码 if (FileUtils.openActivityByDeepLink(this, this.strSchemeDeepLink)) {
closeActivity();
} else if (!NetworkUtils.isNetworkAvailable(ApplicationStone.getInstance()) || AppSharedPreferences.getInstance().checkFunctionPointUseable(FunctionPoint.MCV_AD_CLOSE) {
delayLoaded();
} else {
loadAD();
}
3.根据上一步的分析我们跳转到checkFunctionPointUseable这个参数为String,返回值为布尔的方法,代码的大概意思就是根据传入的字符串(也就是功能)和它请求的数据做比对,看看你是否拥有这个功能,拥有这个功能然后判断什么时候到期,也就是说你使用的每个功能都会在这里进行判断
[Java] 纯文本查看 复制代码 public boolean checkFunctionPointUseable(String str) {
List<AppFunctionPoint> userFunctionPoint = getInstance().getUserFunctionPoint();
if (userFunctionPoint != null && userFunctionPoint.size() > 0) {
for (AppFunctionPoint appFunctionPoint : userFunctionPoint) {
if (appFunctionPoint.getCodes().equalsIgnoreCase(str)) {
if (getFunctionPointExpireTimes(appFunctionPoint) >= 0) {
return true;
}
}
}
}
return false;
}
4.花里胡哨的,直接返回true不就完事了,代码如下
[Java] 纯文本查看 复制代码 public boolean checkFunctionPointUseable(String str) {
return true;
}
本地的高级功能就这样完事了,至于VIP的图标显示方法和这个类似,就不说了,好久没发帖了,随便发个凑凑数
部分软件你都可用这种方法破解,涉及视图的改变之类,顺藤摸瓜就完事了
提供原版App,你们可以去试试,不懂的可以问我
链接:https://www.lanzouj.com/i6lx03i |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|