得物协议算法

data参数

1由于电脑尝试错误请求比较多,写文章的时候dw服务器已经把我封了,我这里用charles抓手机端h5的,请求参数就data一个需要破解,响应待会再说

2找加密data加密位置用hook params查询参数,hook就不多说了

    (function () {
        var open = window.XMLHttpRequest.prototype.open;
        window.XMLHttpRequest.prototype.open = function (method, url, async) {
            if (url.indexOf("data") != -1)  {
                debugger;
            }
            return open.apply(this, arguments)
        }
    })();

3随便点一个物品会断住

4往上跟栈,这个栈往上走后再也没有出现data, 所以data是从上一个函数传下来的,这里需要插桩调试,因为会有许多请求都会经过这里,插桩可以快速定位到关键位置,它只会走一次,v是__zone_symbol__value

e[v].params.data!=undefined

5这张图是hook断住的

6这张图是插桩断住的,断住后直接往上走

7找到这个位置,这里m已经被下面的赋值污染了,需要先取消之前断点再打到v赋值的地方,如下图

8再次点一个物品它会断住,可以看到名称和翻页,还有一个md5签的sign,这种属于把其他参数拼接后签名与传过来的sign做比对来验证,因为摘要算法一般不可逆,所以它的作用就是来验证你传的参数是否和签名后的sign一致,b站和淘宝用的就是这种

9从b.Fun110进去后是另一个js文件,好几千行,我前前后后分别尝试了补环境,扣算法,接着又是补环境,扣算法,补环境,最后扣算法,因为里面环境有点多,即使补到长度一样也不可行,所以最终打算扣算法,补环境还没成功,不过你补环境的话得提前把密钥确定下来,不然服务器返回给你的密文你是解不了秘的,AES对称加密,你不扣算法你也不会知道密钥在哪生成的,因为它是随机生成的.  这是点进去后的文件.

10return的结果在value那个模块里,补环境导出这个模块在手动传参就行了

11详细扣的话要写很多内容,所以想实现就靠你们自己了,扣完也就20多行

12注意事项:

里面混淆不是很严重,所以我没有还原,硬刚的

补环境需要先找到密钥生成位置,否则即使成功了也解不了密

13最后贴一张结果图吧,证明我来过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值