学习hippo过程

一、抓包

        众所周知,阿里系都需要降级不然抓不到包,不管你是直接挂代理http还是VPN,都不好使,感兴趣的自己试试。

        降级之后发现还不好使,有个证书验证,需要过sslpinning,直接安装模块就能解决,数据蹭蹭往外冒。

二、网络降级

        为啥抓不到包啊,因为阿里系都是走的自有协议,我们把协议hook一下,让他走http就行。

public void hookNetwork(XC_LoadPackage.LoadPackageParam lpparam) {
        XposedHelpers.findAndHookMethod(XposedHelpers.findClassIfExists("mtopsdk.mtop.global.SwitchConfig", lpparam.classLoader), "isGlobalSpdySwitchOpen",
                new XC_MethodHook() {
                    protected void afterHookedMethod(MethodHookParam methodHookParam) throws Throwable {
                        super.afterHookedMethod(methodHookParam);
                        XposedBridge.log(TAG + "========开启抓包=====");
                        XposedBridge.log(TAG + "开启抓包前状态: " + methodHookParam.getResult());
//                        methodHookParam.setResult(Boolean.valueOf(false));
                        methodHookParam.setResult(false);
                    }
                });

三、app分析

        通过分析上面的请求,加密参数一共4个x-sgext、x-sign、x-umt、x-mini-wua,当然了众所周知阿里系都是这4个,jadx打开apk搜索关键字getUnifiedSign,找到加密方法位置。

这是我们静态分析,弊端就是混淆后不好找,有没有更好的办法呢,当然有,我们知道代码是要运行在虚拟机上的,那内存中自然都是真实的了,我们可以在内存中搜索、DUMP方法等。

四、hook

        知道了调用的类和方法,我们开始hook吧。

public void hookInterface(XC_LoadPackage.LoadPackageParam lpparam) {
//        XposedBridge.log(TAG + " hook 接口");
        XposedHelpers.findAndHookMethod("mtopsdk.security.InnerSignImpl", lpparam.classLoader, "getUnifiedSign",
                HashMap.class,
                HashMap.class,
                String.class,
                String.class,
                boolean.class,
                String.class,
                new XC_MethodHook() {
                    @Override
                    protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                        super.beforeHookedMethod(param);
//                        XposedBridge.log(TAG + "hook到方法了");
                        XposedBridge.log(TAG + "hook HashMap: " + param.args[0]);
                        XposedBridge.log(TAG + "hook HashMap2: " + param.args[1]);
                        XposedBridge.log(TAG + "hook String: " + param.args[2]);
                        XposedBridge.log(TAG + "hook String2: " + param.args[3]);
                        XposedBridge.log(TAG + "hook boolean: " + param.args[4]);
                        XposedBridge.log(TAG + "hook String3: " + param.args[5]);
                    }
                    @Override
                    protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                        super.afterHookedMethod(param);
                        XposedBridge.log(TAG + "hook getResult: " + param.getResult());
                        signImpl = param.thisObject;
                        callhooktest();
                    }
                });

    }

成功hook到了数据。

五、渗透&主动调用

        开启主动调用,就可以爬数据了。

        很丝滑,请求了1000多条数据都没有问题。

所有阿里系都可以这样做,基本做到了通杀。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

v(z_xiansheng88)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值