回收宝
一、接口分析
通过观察 网站每次请求都会生成一个三个值
timestamp:时间戳
ukey:?
sign:?
二、定位js
找到生成参数的js位置有好几种方法 可以从堆栈中找 也可以直接全局搜索(如果参数名比较特殊的话)
这次直接用全局搜索
一个一个点进去
已经找到了js位置 下面开始打断点 一步步调试
三、断点调试
ukey :
ukey 只是随机生成的一个参数 固定函数 把这个函数直接调用就好
sign :
观察一下 sign值的生成因该跟前面生成的参数有关
进一步调试 发现是把前面所有参数的键值对循环加在一起生成一个字符串 最终通过转换 生成sign值
还有一个注意点就是生成s后会加上一个固定的字符串 代码里可以不用写函数 直接复制这个字符串固定
那么 se()(s).toLowerCase()就是对s进行加密的 那么下面的流程就是查漏补缺 把所有参与加密的函数补齐 生成sign值
加密流程就是 api函数 调用sha1函数。一步步加密后 生成sign值