有券助手技术分析

有券助手分析

1.技术调研

首先,有券助手 是一款 基于 xposed的hook技术的应用.目前,在论坛上有很多种类似应用,例如抢红包,修改微信计步器等等,这是论坛地址传送门.所有要想使用有券助手,必须安装 xposed install 插件.

关于xposed,这是官方的介绍.,它是嵌入到手机系统级别的插件,只要你对源码或者app代码熟悉,让你可以”随意”,装饰,修改,嵌入 自己的代码.

缺陷:

  • 必须安装xposed插件.
  • 安装xposed插件,会造成手机安全性降低.
  • 目前,xposed插件,仅支持Android7.0以下的机器.而且不兼容部分机型.
  • 每次安装带有xposed模块的应用,都需要重启手机.

2.技术实现分析

1.打开有券助手后, 会开启两个服务A和B,A是主服务-负责hook(可以理解为监视)淘宝天猫应用.B是为粘贴板服务.

2.当开启服务后,打开淘宝app.A服务会用xposed框架,得到拿到当前进程,以及包名,版本号.


final Object activityThread = callStaticMethod(findClass("android.app.ActivityThread", null), "currentActivityThread");

final Context context = (Context) callMethod(activityThread, "getSystemContext");

final int versionCode = context.getPackageManager().getPackageInfo(APP_PACKAGE, 0).versionCode;

3.当打开淘宝详情页,执行自己的hook操作.

 String str = paramActivity.getClass().getName();
        if ((!("com.taobao.tao.detail.activity.DetailActivity".equals(str))) && (!("com.tmall.wireless.detail.ui.TMItemDetailsActivity".equals(str))))
          return;
        Object localObject = this.mCouponLib2;
        Object[] arrayOfObject = new Object[2];
        arrayOfObject[0] = paramActivity;
        arrayOfObject[1] = Boolean.valueOf(isYouquanAutoOpen());
        XposedHelpers.callMethod(localObject, "doCreateHook", arrayOfObject);

4.核心代码在doCreateHook()中.

其中这个方法,以及所在的类,被混淆,无法找到和查看.

但是依据网易云音乐查看下架音乐的源代码,具体实现流程应该如下

1.在doCreateHook方法中.拿到商品id,用户id,等参数.
2.通过抓包等手段获取优惠券接口,在app内 用淘宝的自己的请求,请求自己的接口.对已知优惠券接口网络请求得到优惠券的H5界面.

3.根据2得到的当前进程的上下文,startActivity()跳到H5领取界面,领取优惠券.

举个例子

 public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
        if (!lpparam.packageName.equals("com.taobao.tao.detail.activity.DetailActivity"))
            return;

        findAndHookMethod("com.taobao.tao.detail.activity.DetailActivity", lpparam.classLoader, "get优惠券()", new XC_MethodHook() {
            @Override
            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                // this will be called before the clock was updated by the original method
            }
            @Override
            protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                // this will be called after the clock was updated by the original method
            }
        });

        XposedHelpers.callMethod()
    }

3.总结

有券助手在 熟知淘宝优惠券api,淘宝详情页java类,以及对应的变量和方法名前提下,通过xposed自带的hook技术,拿到优惠券数据,从而实现领券功能.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值