吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4799|回复: 5
收起左侧

[讨论] JD京东京喜拼拼sign算法问题,有在研究的来一起探讨

[复制链接]
wang200704140 发表于 2021-7-1 04:21
调试的API:
[HTML] 纯文本查看 复制代码
https://api.m.jd.com/api?functionId=jxpp.picksite.queryOpenProvinceCityList&appid=jxpp_miniprogram&t=1625075969787&loginType=undefined&loginWQBiz=&body={"buid":325,"time":1625075969788,"signStr":"a35c0af64d2c50924fc1307fb7634209"}&channel=wxappjxpp&cv=1.15.0&clientVersion=1.15.0&client=wxappjxpp&uuid=3eede30a-87b9-517b-0900-75ba01e26c45113d

程序:微信小程序
众所周知,JD拼拼JDPP获取它的商品需要与https://api.m.jd.com/进行通信,提交的数据中sign需要算法获得,并不是改下表单数值就能完成的,那么可以确定,通过各种抓包分析同于不同知道sign是由functionId、appid、loginType、loginWQBiz、buid、time获得的,
一、首先分析URL
1.functionId大概是函数名字,调用的函数类什么的,参与sign的计算
2.appid 看参数顾名思义,就是给JXPP小程序调用的,参与sign的计算
3.loginType 与登录有关
4.time 调用时间,
5.body 里面的就是提交的参数[buid:325]是固定的,不是用户UID什么的,[time]时间,参与sign的计算
6.剩下那部分,只要sign正确可有可无
二、通过反编译小程序,没错,不难发现,拼装成sing的五个东西channel、cv、clientVersion、client、uuid、body里面的数据
            key: "dealParams",
            value: function(e) {
                var t = {
                    signKey: "kjylzdcg",
                    data: {
                        channel: d["a"].getClient(),
                        cv: d["a"].getVersion(),
                        clientVersion: d["a"].getVersion(),
                        client: d["a"].getClient(),
                        uuid: Object(B["d"])().uuid
                    }
                };
                e.body = e.body || {}, "undefined" == typeof e.body["buid"] && (e.body["buid"] = d["a"].getBusinessId()), 
                e && Object.assign(t, e), Object.assign(t.body, {
                    time: new Date().getTime()
                });
                var a = t.body || "";
                "string" != typeof a && (a = JSON.stringify(a));
                var n, i = this.getSignString(a);
                return e.body.signStr = i, n = Object.assign({}, t.data, e), n;
            }
        }

  这应该就是sign算法的函数了,其他看不懂
2.这个应该是组装成sgin的流程,只看懂AscII和md5加密
[JavaScript] 纯文本查看 复制代码
value: function(e) {
                e = JSON.parse(e);
                var t = this.orderByAscII(e), a = this.getParamsValue(t);
                a = a.toString();
                var n = A.md5(a, "xtl_sqg_mall-^&*-damai_(789)_@#$");
                return n;
            }

最后附上,小程序反编译后的源码,有兴趣的小伙伴一起探讨




1625083203(1).png
image.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Lananann 发表于 2021-7-1 10:43
大佬有频道嘛?想跟着喝汤
头像被屏蔽
还能念你多久 发表于 2021-7-1 12:06
tank6635985 发表于 2021-7-13 11:43
bobbyleu 发表于 2021-7-14 20:52
求提取小程序方法或工具
237873443 发表于 2021-8-5 13:50
楼主加油 期待结果
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 01:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表