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

2023-11-12

可以看到了变的参数只有一个_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)


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

08:js逆向---压缩技术 的相关文章

随机推荐

  • Shell计算时间运行时间

    方法1 starttime date Y m d H M S 执行程序 endtime date Y m d H M S start seconds date date starttime s end seconds date date e
  • 笔试

    文章目录 前言 21 FPGA组成三要素 1 CLB 2 可编程内部互联资源 3 可编程输入输出块 22 查找表 LUT 23 锁存器 latch 触发器 24 亚稳态 25 逻辑电平 26 逻辑最小项 总结 往期精彩 前言 本文首发于微信
  • LeetCode-135.分发糖果、贪心算法

    老师想给孩子们分发糖果 有 N 个孩子站成了一条直线 老师会根据每个孩子的表现 预先给他们评分 你需要按照以下要求 帮助老师给这些孩子分发糖果 每个孩子至少分配到 1 个糖果 相邻的孩子中 评分高的孩子必须获得更多的糖果 那么这样下来 老师
  • 【共享内存】

    1 共享内存示意图 共享内存区是最快的 IPC 形式 一旦这样的内存映射到共享它的进程的地址空间 这些进程间数据传递不再涉及到 内核 换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据 2 共享内存数据结构 struct shmi
  • uniapp 框架引用turf.js步骤

    Turf js中文网 一 安装指定模块 示例 实现运动轨迹缓冲区及迹缓冲面积计算 接口获取的轨迹点连成线 Turf js 轨迹点只有一个则无法连成线 a npm 安装 npm install turf helpers b 页面引入 impo
  • 深入LDO学习

    目录 工程问题 1 LDO 输出电源电平低于设置值 2 电源芯片欠压保护电路导 致上电时序不满足设计的要求 原理 layout图 优点 缺点 原理 选型 热计算 计算 LDO 工作时的结温 工程问题 1 LDO 输出电源电平低于设置值 某款
  • jqueryweui,两个输入框解决方法

    document ready function
  • CURL使用SSL证书访问HTTPS

    在支付的交互过程中 安全绝对是需要考虑的重要因素之一 体现在对服务器交互数据的签名等环节 但有的时候为了能达到更高的安全级别 还需要用ssl证书 即web服务器有证书 浏览器客户端 请求端也需要安装证书来达到双向验证 比如请求下面的财付通支
  • Linux:169.254.0.0/24路由的来龙去脉

    在Linux中 发现每次系统启动时 都会将 169 254 0 0 16 路由启动并将其添加到路由表中 但是并不知道这条路由具有什么功能和它到底来自于哪里 要想搞清楚路由 169 254 0 0 16 究竟来自哪里并且它的作用是什么 首先需
  • Contest3032 - 计科2101~2104算法设计与分析上机作业03

    目录 问题 A 质数 问题 B 分治法求解全排列问题 问题 C 数的计数 问题 D 最大公共子序列问题 问题 E 分解式的个数 问题 F 矩阵最优连乘问题 问题 A 质数 题目描述 判断给定的一组正整数是否为质数 输入 第一行为测试数据的个
  • linux创建新用户

    只需要四步就能创建一个新的linux用户 1 打开终端 快捷键Ctrl Alt T 2 创建用户和密码 sudo useradd m aaa 创建用户名为aaa的用户 m 自动建立用户的登入目录 sudo是允许系统管理员让普通用户执行roo
  • 在地址栏里输入一个地址回车会发生哪些事情

    解析URL 首先会对 URL 进行解析 分析所需要使用的传输协议和请求的资源的路径 如果输入的 URL 中的协议或者主机名不合法 将会把地址栏中输入的内容传递给搜索引擎 如果没有问题 浏览器会检查 URL 中是否出现了非法字符 如果存在非法
  • libev学习系列之四:ev_loop事件循环

    libev学习系列之四 ev loop事件循环 版本说明 版本 作者 日期 备注 0 1 ZY 2019 5 31 初稿 目录 文章目录 libev学习系列之四 ev loop事件循环 版本说明 目录 一 前言 二 描述 三 例子 一 前言
  • tensorflow(十七)关于tensorboard网络运行时参数的查看

    关于tensorboard网络运行时查看参数主要包括网络的权值和偏差
  • [学习笔记-opencv篇]ubuntu系统下运行opencv自带双目标定+立体匹配程序

    ubuntu系统下运行opencv自带双目标定 立体匹配 双目标定 立体匹配 找了很多opencv自带双目标定的资料 发现大多数都是使用vs opencv或matlab运行的 也可能是找的还不够 参考了一些资料 写了个cmake 然后一通操
  • 机械革命深海幽灵z2学习电脑系统史

    目录 前言 第一次蓝屏 第一次接触重装系统 装Linux系统 Linux16 04版本与显卡1060不兼容问题 windows与linux双系统问题 Linux学习 售后 自己重装系统 换主板 没有我修不好的电脑 键盘故障 再次蓝屏 重装系
  • [精华]uniapp微信授权登录,

    转载一 微信授权登录 转载二 uniapp页面速成提效工具 uniapp uview ui 可视化 完全自由拖拽 一键生成flex代码网站 http aicode shagua wiki uni index html 十大特性 1 可视化
  • Unity屏幕坐标转UI局部坐标

    RectTransformUtility ScreenPointToLocalPointInRectangle https docs unity cn cn 2019 2 ScriptReference RectTransformUtili
  • 在C语言多维数组a[3][2]中的a[2]代表的是什么意思

    一开始我以为a 2 是等价与a 2 0 也就是第三行的第一个元素 后来发现错误 a 2 是等价与 a 2 其值是第二行的首地址 a 2 0 等价于 a 2 个人认为可以把二位数组的数组名理解成一个二维指针 解运算一次 放的是地址 行地址 解
  • 08:js逆向---压缩技术

    可以看到了变的参数只有一个 toke 接下来解决toke 直接搜索 通过window Rohr Opt reload函数加密 reqUrlAndParams是在上面生成的 进去函数里面看 iP reload function jv jv最初