得物APP接口加密分析

1,387 阅读1分钟

本文章的目的纯为技术研究所分享,带你了解目前前端JS加密的原理

**原文地址:**zhuanlan.zhihu.com/p/377282174

一般做的好,有一定安全意识的网站都会对数据进行加密,得物APP也一样,对接口请求进行了加密处理。

但是这种加密也就只能防得住君子,防不住高手,比如我,毕竟这种前端加密算法需要暴露到浏览器运行,就给了爆破的机会。

我们看到下图,请求有一个 ​sign​ 参数,这个参数是动态生成的,这里已经就吓跑了很多想破解的程序员~~。其实还是很简单的。

sign​ 参数就是突破口,我们全局搜索这个参数(如下图)

一堆代码别头疼,这时候需要耐心的查找,很快我们就发现了蛛丝马迹(如下图),在 ​index.2c3016d3.js​这个文件中

很明显,这个地方就是给 ​sign​ 赋值的,双击进入到代码(如下图),没错,大概率是这的, ​params​ 是请求参数,对参数进行加密签名生成 ​sign​ 。

我们在这里打一个断点,然后开始调试,找到了如下函数,**这里就是加密算法的核心入口啦!,**尤其注意 ​19e7​ 这个函数。

最后到这里,我们就找到了加密算法,剩下的就简单了,只要执行即可。

最后我们把代码还原回来,运行一下,和接口中的sign一致,就这样我们完成了加密算法的识别了。

还原的加密算法源码,我就不在这里公开啦,大家可以关注我~