优酷app参数分析

优酷app的 x-sign,x-mini-wua, x-sgext,x-umt的 frida hook。

在这里插入图片描述

打印出的参数和返回的结果:

  • v1: {deviceId=xxx, appKey=xxx, utdid=xxx, x-features=27, ttid=xx, v=1.0, sid=null, t=1634609271, api=“xx”, data={“ms_codes”:“2019061000”,“params”:“xx”,“system_info”:“xx”}, uid=null}
  • v2: {pageName=, pageId=}
  • v3: 23570660
  • v4: null
  • v5: false
  • res:{x-sign=xx, x-mini-wua=xx, x-sgext=xx, x-umt=xx}

Frida hook代码

import frida, sys

def on_message(message, data):
    if message['type'] == 'send':
        print("[*] {0}".format(message['payload']))
    else:
        print(message)

jscode_hook = """
Java.perform(function () {
    /**
     * hook url构造函数, 得到调用位置打印堆栈信息
     */
    const u = Java.use("java.net.URL")
    u.$init.overload('java.lang.String').implementation = function (v1) {
        if (v1.indexOf("mtop.youku.play.ups.appinfo.get") > 0) {
            console.log("--------------------------------------------------------------------------")
            console.log(v1)
            const security = Java.use("mtopsdk.security.c");
            security.a.overload('java.util.HashMap', 'java.util.HashMap', 'java.lang.String', 'java.lang.String', 'boolean').implementation = function (v1,v2,v3,v4,v5){
                console.log("v1: " + v1);
                console.log("v2: " + v2);
                console.log("v3: " + v3);
                console.log("v4: " + v4);
                console.log("v5: " + v5);
                const res  = this.a(v1,v2,v3,v4,v5);
                console.log("res:" + res);
                return null;
            }
            return this.$init(v1);
            console.log("--------------------------------------------------------------------------")
        }
        return this.$init(v1);
    }


    /**
     * hook 验证视频播放信息数据
     * @type {Java.Wrapper<{}>}
     */
    // const param = Java.use("com.youku.upsplayer.GetUps");
    // param.constructParams.implementation = function (v1, v2) {
    //     const j = Java.use("com.alibaba.fastjson.JSONObject");
    //     console.log("参数1: " + v1.toJSON())
    //     console.log("参数2 vid: " + v2.vid.value)
    //     console.log("参数2 ccode: " + v2.ccode.value)
    //     console.log("参数2 utid: " + v2.utid.value)
    //     console.log("参数2 showid: " + v2.showid.value)
    //     console.log("参数2 show_videoseq: " + v2.show_videoseq.value);
    //     showStacks();
    //     // return this.constructParams(v1,v2);
    // }

})
"""

process = frida.get_usb_device().attach('com.youku.phone')
script = process.create_script(jscode_hook)
script.on('message', on_message)
print('[*] Hook Start Running')
script.load()
sys.stdin.read()

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:
https://cloud.tencent.com/developer/support-plan?invite_code=2zkzuozt03sww

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

考古学家lx(李玺)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值