安装逆向实战-抖音极速版(版本问题无法看到视频)rpc | 字符串转unicode编码数组charCodeAt()

本文通过抓包及代码逆向分析,揭示了RPC请求中关键参数as、cp和mas的生成过程。利用Fiddler抓取请求包,并通过JADX搜索可疑代码片段,最终实现了这些参数的正确生成及RPC调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目标:分析请求参数中的as、cp、mas的生=生成方式并成功rpc调用。
fiddler抓包并分别对再次请求以及翻页请求的请求url进行文本对比发现上述三个参数为目标参数
用jadx打开apk,用搜索大法进行搜索,单独搜索mas会出现很多结果,小技巧:用"mas(双引和单引是不同的)或者&mas进搜索,缩小搜索范围,得出可疑代码位置

在这里插入图片描述
在这里插入图片描述

组装起来改成rpc格式用rpc调用就完事了
function getBytes(s) {
    var bytes = [];
    for (var i = 0; i < s.length; i++) {
        bytes.push(s.charCodeAt(i));
    }
    return bytes;
};

var UserInfo = Java.use('com.ss.android.common.applog.UserInfo')
var i = timestamp
var decode = requestsurl
var my_devices_info = [my_devices_info]
var c2 = deviceid
var str = UserInfo.getUserInfo(i, decode, my_devices_info, c2)
var i2 = str.length()
var i2 = i2/2
var substring = str.substring(0, i2)
var as = substring
var cp = str.substring(i2)


var StcSDKFactory = Java.use('com.ss.sys.ces.out.StcSDKFactory');
var GlobalContext = Java.use('com.ss.android.common.applog.GlobalContext');
var AwemeApplication = Java.use('com.ss.android.ugc.aweme.app.AwemeApplication');
var sdk = StcSDKFactory.getSDK(GlobalContext.getContext(),AwemeApplication.p().m());
var sdk_encode = sdk.encode(getBytes(substring))
var EagleEye = Java.use('com.ss.android.common.applog.EagleEye')
var mas = EagleEye.byteArrayToHexStr(sdk_encode)

java的一些方法的写法
getBytes()

在这里插入图片描述

function getBytes(s) {
        var bytes = [];
            for (var i = 0; i < s.length; i++) {
                bytes.push(s.charCodeAt(i));
            }
        return bytes;
}
java中8>>1是什么意思
  • << 在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方
  • '>>右移一位相当于除2,右移n位相当于除以2的n次方
  • '>>>对于正数来说和带符号右移相同,对于负数来说不同
https://www.imooc.com/wenda/detail/426292
substring(a,b)

- 从索引a处往后取b位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值