搜狗翻译api抓取分析
最近开学之后,博主更新博客的时间变少了,今天五一劳动节了,随手做一个吧,关于百度翻译api那个,后面我尝试转一下语言,进行处理
那么今天就要进行翻译搜狗的逆向吧
抓取信息
首先打开搜狗翻译的网站点我跳转

右键你键盘上的F12,点击检查->网络 开始抓包,首先我们先翻译一个东西就拿你好,来举个例子

这个result的api,就是翻译的api,点击payload看看参数,这里先翻译两次,找到变和不变的

分析参数
text,这个好理解,就是翻译的东西
s和uuid是加密参数,需要解密,其他参数都不变
s参数分析
首先来看s参数,可以看到是引用了这个文件

点进去,如果直接搜s是不行的,不过从s的长度,疑似一个md5摘要算法,那我们搜索一下md5

这里就是md5调用的地方了,先勾上,然后去翻译一个东西,可以得到t=autoen西瓜1109984457
auto为自动检测源语言,en是翻译的目标语言,至于后面的数字我们暂时不知道具体意思,那直接打this.md5这个部分
得不到n这个函数的意义,去其他js文件看看,这个app.js很可疑

点进去

从3162行可以看到,下面的s等于D,同时D也是由V函数和p m l c这四个地方组成的,我们打一下断点

C就是我们想要的地方,同时跟x.secretcode是一样,我们需要找到x函数的位置
这里我苦恼了半天也没找到x的位置,然后翻译了几次,发现数字都没变,应该是个定值
这样就得到了加密公式
1 | 源语言+翻译语言+翻译文本+109984457 |
uuid参数分析
根据多次翻译的结果,uuid也是定值
成品
分析完成之后,接下来开始写代码了
TS代码示例
1 | import CryptoJS from 'crypto-js'; |
Python
1 | from_text = "auto" # 翻译的源语言 |
这期先到这里了
