08:js逆向---压缩技术

可以看到了变的参数只有一个_toke,接下来解决toke,直接搜索

 通过window.Rohr_Opt.reload函数加密,reqUrlAndParams是在上面生成的

,进去函数里面看

 

 

               iP.reload = function(jv) {//jv最初生成的链接和接口
                    var jw;
                    var jx = {};
                    if (typeof jv === _$_543c[91]) {
                        jx = iO.parse(jv.split(_$_543c[146])[1])
                    } else {
                        if (typeof jv === _$_543c[2]) {
                            jx = jv
                        }
                    }

                     //jv==>没有toke的params
                    ;iP.sign = iJ(jx);
                       //生成时间戳
                    iP.cts = new Date().getTime();
                    
                    jw = iI(iP);

                    if (Rohr_Opt.LogVal && typeof (window) !== _$_543c[0]) {
                        window[Rohr_Opt.LogVal] = encodeURIComponent(jw)
                    }

                    ;return jw

(1):先通过函数ij把jx(没有toke的params)加密 

(2):在通过il把ip加密生成toke

ip={
    "rId": 100900,
    "ver": "1.0.6",
    "ts": 1674968465018,
    "cts": 1674968468363,
    "brVD": [
        150,
        714
    ],
    "brR": [
        [
            1536,
            864
        ],
        [
            1536,
            816
        ],
        24,
        24
    ],
    "bI": [
        "https://jx.meituan.com/meishi/pn4/",
        "https://jx.meituan.com/meishi/pn3/"
    ],
    "mT": [],
    "kT": [],
    "aT": [],
    "tT": [],
    "aM": "",
    "sign": "eJwljUtOAzEQRO+SRS/9mek4GMkLlBVSxI4DWJlOYjL+yG5HcAAW3ICDcKXcAyNW9Up6qtr4Sv55cQqOnukfAn+8+Eju/v11//yBJaREdZ974ifmOhzIhUPsbZ8XclpBruEc0mtd3YW5tEcp395FpMDdJ3HMUQ5ulyBLQgnFn8nhiMpj1unJQFk9n3KNTkMN7XqgG62DW67soDf6+5xwi/oBt8ZC72F0ImsMeoW7E5p5tnpahDY7tEbNVgktlFCbX2w0Snw="
}

 

 

 ij函数实际就干了3件事:ck==>拿了没有toke的params的所以vaule(见)

jd====>

 将jd在il函数里面加密,并返回

deflate===>压缩,在il函数实际就干了一件事:把传进去的参数进行压缩,

这个加密实际上就是干了2次压缩

可在python里面实现

压缩

import zlib
import base64
params = {
    'cityName': '北京',
    'cateId': '0',
    'areaId': '0',
    'sort': '',
    'dinnerCountAttrId': '',
    'page': '2',
    'userId': '2454184569',
    'uuid': '2ee9664a047f4633912d.1674960390.1.0.0',
    'platform': '1',
    'partner': '126',
    'originUrl': 'https://bj.meituan.com/meishi/pn2/',
    'riskLevel': '1',
    'optimusCode': '10',
}
#compress压缩
#AttributeError: 'dict' object has no attribute 'encode'所以必须强转为str
zill=zlib.compress(base64.b64encode(str(params).encode()))
print(zill)


解压

import zlib
import base64
#decompress解压
_token='eJxVjluPojAYhv9LbyG2MLVQ7zyB1qCgyAibuUAOcrKgFMlks/99O4l7scmXvIfvuXh/g+c2BTMNIYqQCl7ZE8yANkETAlQgevkhBqYEUWpqWFNB8n+nY6qC6zNYgdkvbYpUQ8NfP8VRZll8ENUksnlbjXypOpb3w2wlAgohun4G4bWa3LNSDDGfJO0dSt8XJey4DuUMIPG7L3Gp9Vvjt4p/2ZG7JduXNy5dxsamSoTwqvX5uBFFEuWK++mWJ2u6fi6ZZVi7+WgM8+98v6HV+eReF+6a1DcaekrC/IAz+xA1sdJyJeXhkjL4vfH2WVop1SAIzLmuhB7qQmHUPCvtx4itZOf4meCNzcZLbbe4eKW5xcNilylXE5tjuRhapb/oh3wzNxYBOeFmZa4jFJ8/uXN41E7jXPxtmrds73uugOOtf92asp+S+Qd0uyCL4b3WzGhp6BY62oNDa/Zaic6pp8EjEqwXq6DsW8ZYV4Sut1w46OGBP38B+QWQjw=='
zlll=zlib.decompress(base64.b64decode(_token.encode())).decode()
print(zlll)
import zlib
import base64
import time
params = {
    'cityName': '嘉兴',
    'cateId': '0',
    'areaId': '0',
    'sort': '',
    'dinnerCountAttrId': '',
    'page': '3',
    'userId': '2454184569',
    'uuid': '2ee9664a047f4633912d.1674960390.1.0.0',
    'platform': '1',
    'partner': '126',
    'originUrl': 'https://jx.meituan.com/meishi/pn3/',
    'riskLevel': '1',
    'optimusCode': '10',
}
def compress_yashu(data):
    encode1=str(data).encode()
    compress=zlib.compress(encode1)
    b_encode=base64.b64encode(compress)
    e_sing=str(b_encode,encoding="utf-8")
    return e_sing
sign=compress_yashu(params)
ip={
    "rId": 100900,
    "ver": "1.0.6",
    "ts": int(time.time()*1000),
    "cts": int(time.time()*1000)+1000,
    "brVD": [
        150,
        714
    ],
    "brR": [
        [
            1536,
            864
        ],
        [
            1536,
            816
        ],
        24,
        24
    ],
    "bI": [
        "https://jx.meituan.com/meishi/pn3/",
        "https://jx.meituan.com/meishi/pn2/"
    ],
    "mT": [],
    "kT": [],
    "aT": [],
    "tT": [],
    "aM": "",
    "sign":sign
}
toke=compress_yashu(ip)
print(toke)


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值