小知识,大挑战!本文正在参与“ 程序员必备小知识 ”创作活动
本文同时参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金
Code皮皮虾 一个沙雕而又有趣的憨憨少年,和大多数小伙伴们一样喜欢听歌、游戏,当然除此之外还有写作的兴趣,emm...,日子还很长,让我们一起加油努力叭🌈
如果觉得写得不错的话,球球一个关注哦😉
打开百度翻译
逆向分析
打开控制条,在输入框中输入一个单词,可看到右边有着对应的请求,请求到了翻译的结果
下面,我们们来研究研究这个请求
首先引入眼帘的,可以看到,这个请求是POST请求,那么肯定有请求体
可以看到下面就是请求体,我们来单个分析
# 从什么语言翻译成什么语言
from: en
to: zh
# 需要翻译的单词
query: love
transtype: realtime
simple_means_flag: 3
# 关键是下面两个
sign: 198772.518981
token: e8ee595fdb9a062d2d41124d778ebd79
domain: common
复制代码
换一个去进行翻译,对比上面和下面可以发现,token
值没有变,但是sign
改变了
多试几个,可以确定,sign跟随翻译稳进行改变,token确定不变
分析sign
搜索v2transapi,因为每次会发起这个请求获取翻译结果,所以我们搜索这个关键词
打断点,刷新请求看看
可以看到,在这里停了下来,说明我们思路没错
可以看到,请求体的数据来自上面,那么我们在sign处打断点,进去看看sign是怎么生成的
可以看到是通过JS进行的加密等等操作最后得到的,但是其中涉及到一个关键的值,那就是window[l]
,我们暂时不看,去分析token
分析token
可见,token是通过 window.common.token
获取的,我们咋知道这是个啥东西
没事,遇事不决就搜索
可以知道,token原来是在访问页面的时候就生成了,怪不得是固定的
在页面中搜索token,还能发现下面这个 window.gtk
小伙伴可还记得之前有个 window[l]
,我直接拿图对比,看了下面这个图懂的都懂了吧
思路整理
- 首先,我们要获取到token值和gtk,这都是后面要用到的值
- 生成sign,可以复制JS,利用python的库操控js,传参生成sign
- 模拟最开始的POST请求,获取翻译结果
- 结束
视频教学
生活太滋润了?硬核作品:【百度翻译JS逆向】,保姆级教程,你值得拥有!_哔哩哔哩_bilibili
行不更名,坐不改姓,全网都是Code皮皮虾,觉得不错的,球球有一个一键三连哦,哈哈😁
💖最后
我是 Code皮皮虾,一个热爱分享知识的 皮皮虾爱好者,未来的日子里会不断更新出对大家有益的博文,期待大家的关注!!!
创作不易,如果这篇博文对各位有帮助,希望各位小伙伴可以一键三连哦!,感谢支持,我们下次再见~~~
近期评论