分析主要逻辑
抓包定位到/webtranslate
接口就是翻译接口,先看参数(如下图)
可以明显看到是有一个加密参数sign,再看服务器响应的数据(如下图)
可以看到它是以密文形式返回,因此这里一定是数据返回在前端,通过JS将密文解密了。
知道主要逻辑就可以开工了,接下来的话,主要就是:
- 分析一个加密参数sign(请求参数值)
- 解密返回的密文数据,将密文还原为明文
现在知道整体的逻辑就可以开工啦~
逆向sign参数
通过JS断点调试,最终发现sign加密参数的生成位置,其中o是时间戳,e是写死了的字符串
所以就找到了加密函数的入口,即S
函数,进入S函数就进入核心的加密逻辑了(如下图)
可以看到将几个值拼接出的长字符串传入了
_
函数进行加密处理,所以具体的加密规则一定在_
函数中
好啦看到这里,熟悉的md5
字样,盲猜是标准库中的md5算法,直接通过在线工具对字符串进行加密,将得到的结果与网页中比对~
哎~让我赌对了,就是标准的md5加密算法,连魔改都没有。
这是我还原出的JS代码:
const CryptoJS &#