吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 27796|回复: 62
收起左侧

[Android 原创] Xposed开发实践(破解匆匆下载器VIP限制)

  [复制链接]
l123456789jy 发表于 2018-8-8 13:26
本帖最后由 l123456789jy 于 2018-8-14 13:18 编辑

一直没有找到合适的种子下载器,偶尔看到一个`匆匆下载器`,试了下解析成功率相当高,但是是要付费的,我这种穷逼,拿来的钱,所以就打算逆向下,看看

#### 第一步分析
- 打开APKTool,分析改APK,结果发现居然加密,是用梆梆加密的
- 关于如何破解梆梆加密请看我这篇文章[App“梆梆加固”破解](https://www.jianshu.com/p/955c0b1507c7 "App“梆梆加固”破解")

#### 第二部开始分析,关键代码

- 我们把源码dum出来之后,使用 dexjar,打开
![]()

- 源码全部看到啦
- 我们通过`ACTIVITY TOP`获取播放界面的完整类名,和路径
![]()
这里我么就看到了,他的包名,和当前Activity的完整路径,接下在我们就去找`AdvancedPlayActivity`这个类

- 然后我们根据他的提示语去搜索,找到关键代码
这个是游客登录的限制逻辑
![]()

这个是vip逻辑的限制

![]()

- 有了关键代买,我们就好办了,我们分析,他这个逻辑都是在一个叫做,`startPositionTimer` 方法里面被调用,我们只需要hook住这个方法,替换这个方法,替换成一个空实现不就ok了


```java
public class Man implements IXposedHookLoadPackage {

  private static final String FILTER_PKGNAME = "com.congcong.dl.application";
  private static final String BAI_DU_PKGNAME = "com.congcong.dl.application.widget.BDCloudVideoView";
  private static final String AD_PKGNAME = "com.congcong.dl.application.cc.bar.AdvancedMediaController";
  private static final String LOG_PKGNAME = "android.util.Log";
  @Override
  public void handleLoadPackage(final LoadPackageParam loadPackageParam) throws Throwable {
    Log.e("handleLoadPackage", loadPackageParam.packageName);
    if (FILTER_PKGNAME.equals(loadPackageParam.packageName)) {

      //这里是为了解决app多dex进行hook的问题,Xposed默认是hook主dex
      XposedHelpers
          .findAndHookMethod(Application.class, "attach", Context.class, new XC_MethodHook() {
            @Override
            protected void afterHookedMethod(MethodHookParam param) throws Throwable {
              Log.e("handleLoadPackage", "afterHookedMethod");
              final ClassLoader cl = ((Context) param.args[0]).getClassLoader();
              XposedHelpers.findAndHookMethod("com.congcong.dl.application.cc.AdvancedPlayActivity", cl, "onCreate", Bundle.class, new XC_MethodHook() {
                @Override
                protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                  Log.e("handleLoadPackage", "onCreate");
                  //获取当前hook的activity
                  final Activity thisObject = (Activity) param.thisObject;
                  Uri data = thisObject.getIntent().getData();
                  Log.e("handleLoadPackage",data.toString());
                  final Class<?> aClass = cl.loadClass(AD_PKGNAME);
                  //hook AdvancedMediaController 中 startPositionTimer方法并且替换为空实现
                  XposedHelpers.findAndHookMethod(aClass, "startPositionTimer",
                      new XC_MethodReplacement() {
                        @Override
                        protected Object replaceHookedMethod(MethodHookParam methodHookParam)
                            throws Throwable {
                          Toast.makeText(thisObject,"hook,成功!",Toast.LENGTH_SHORT).show();
                          Log.e("handleLoadPackage", "replaceHookedMethod");
                          return null;
                        }
                      });
                }
              });

            }
          });
    }


  }
}
```

应广大群众要求,想要使用下载功能,看了下,就把这功能实现了,思路很简单,就是hook他的vip,属性就可以了,然后替换他的登陆方法,放出源码
//================================================
  final Class<?> aClass = cl.loadClass("com.congcong.dl.application.cc.ShowListActivityQ");
  XposedHelpers.findAndHookMethod(aClass, "getlogin",
      new XC_MethodReplacement() {
        @Override
        protected Object replaceHookedMethod(MethodHookParam methodHookParam)
            throws Throwable {
          Toast.makeText(((Activity) methodHookParam.thisObject),"hook,成功!",Toast.LENGTH_SHORT).show();
          //通过查看源码发现他标记用户的vip标识是vip=10不是,所以动态修改他的属性就行了
          XposedHelpers.setObjectField(methodHookParam.thisObject,"vip","1");
          Log.e("handleLoadPackage", "replaceHookedMethod");
          return null;
        }
      });

}



这样就可以无限制的看了,代码已经上传github[地址](https://github.com/l123456789jy/GradleTask "地址"),在xposted 里面搜索匆匆就可以使用该插件了,插件2.0已经可以使用下载功能了.(匆匆已经改名,估计作者也逛论坛,毕竟人家还要盈利的,思路给了,后续自己破解吧!)

免费评分

参与人数 19吾爱币 +25 热心值 +17 收起 理由
h54953 + 1 + 1 不能用了
momide + 1 + 1 我很赞同!
psps + 1 + 1 老哥,匆匆下载器改名了,能更新下吗,好像不能用了
seesea + 1 鼓励转贴优秀软件安全工具和文档!
人二 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
sougou2009 + 1 + 1 加入下载功能就可以直接开车了。
lxj199610 + 1 用心讨论,共获提升!
酱爆你个西瓜头 + 1 + 1 建议论坛大大给编辑器加上markdown语法解释
sdx1986a + 1 + 1 我很赞同!
陈江枫叶 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
老是卖你们 + 1 + 1 大神收藏学习
qtfreet00 + 6 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
jiang196771 + 2 + 1 高大上啊,不适合小白啊,有没有弄完的啊
Recobaggio + 2 + 1 谢谢@Thanks!
motosanta33 + 1 + 1 我很赞同!
xiaolan + 1 + 1 热心回复!
阿尔卡伊达 + 1 + 1 热心回复!
微若清风 + 1 + 1 谢谢@Thanks!
绍离 + 2 + 1 求打包

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Tankes 发表于 2018-8-8 18:04
解释的不错啊,很赞!
zrssz 发表于 2018-8-10 03:35 来自手机
本帖最后由 zrssz 于 2018-8-10 06:49 编辑

https://wap.shouji.com.cn/down/34579.html
这个可以下载种子可以下载磁力

https://wap.shouji.com.cn/down/31847.html
这个可以下载网页视频.我用的是4.0版本.可以嗅探网页视频.浏览器一般不能用安卓webview要用谷歌webview才能嗅探[夸克浏览器可以.谷歌浏览器我还是旧版可以新版就不知道了].如果你是安卓5.0及以上这软件刚装上去好像没反应.你要激活放一两个月好像就有作用了


这个是下载重定向:我用1.15版本无界面可以接管系统下载器.软件高版本好像不起作用5.0及以上版本.新版谷歌浏览器没办法接管.旧版还可以
https://wap.shouji.com.cn/down/34579.html
后两个是xposed模块.
jasagen 发表于 2018-8-8 13:35
玩物丧智 发表于 2018-8-8 13:37
高手无处不在!
多幸运遇见baby 发表于 2018-8-8 13:40
你这写得不适合小白呢
wuyy 发表于 2018-8-8 13:43
感谢分享 ,值得学习
thornfish 发表于 2018-8-8 13:57
简介明了很OK
凌乱的思绪 发表于 2018-8-8 14:03
支持原创,感谢楼主
KSTG_茶飘香 发表于 2018-8-8 14:46
简介明了,原理差不多 了。
momide 发表于 2018-8-8 15:18
感谢楼主分享,已学会
魂尘墨客 发表于 2018-8-8 16:22
感谢楼主,学会了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 20:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表