伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

js逆向破解百度翻译

来源:本站原创 浏览:108次 时间:2022-10-08
破解百度翻译1. 首先要分析浏览器是怎么发送请求的。2. 构造请求

找到关键请求之后,就要分析请求,然后去构造请求。分析请求有一下几个要素,url,请求方法,请求头,请求参数。

请求参数有七个,可以通过反复请求然后比较的方法得出from,to是表示翻译语言的,transtype,simple_means_flags这两个的值没有变。最关键的是query,sign,token参数,其中query是要查询的单词字符串。signtoken需要分析。

3. 关键参数token的分析

请求的参数有三个来源

  1. 第一个请求返回的页面html源码中

  2. 前面的某次请求返回的数据

  3. 请求之前由js动态生成

打开百度翻译页面源码,复制上面请求中token的值然后搜索,果然在页面源码中发现了token的值。

4. 关键参数sign的分析

经过分析,发现sign的值随着单词的不同而不同,并且因为当前请求是ajax的,所以sign一定是js动态生成的。

js逆向的三种方法

  1. 通过页面元素触发函数进行定位请求执行js代码

  2. 通过开发者调试工具network选项中的initiator栏进行定位

  3. 通过搜索参数名进行定位

我把sign搜它出来发现sign函数去这是js看下

打断点,回车,运行下js

最后一步一步来调试

很快找到了来源

发现处理的方法就是e,n两个函数,通过PyExecJS模块进行js测试。因为这js函数看不懂,不建议改写成python函数,将这两段函数代码复制到文本中,保存为baidu.js文件

5. PyExecJS模块

PyExecJS是一个实现通过python执行js代码的库。

安装:

$ pip install PyExecJS

PyExecJS入门

直接运行e,n两个函数

分析js代码,发现其中有个window的变量,原来window没定义

不知道它是啥,打断点,看下啥东西

window[gbk] ,window不就是一个变量来的,去看下local变量

local没有,看global

在window中寻找gbk

在js先用"320305.131321201" 代替window[l],运行

这就是我找了好久的的sign

5. 分析window[l]

是不是每个单词的sign都是一样的呢?

尝试到html页面中去查找,发现是一个在html页面中定义的变量。

这是个固定值,可以直接写成常量,也可以取页面获取。

6. 代码编写

思路

  • 利用正则将页面的token拿下来

  • window[gbk]是固定的,封装函数来得到sign

  • 这里有个神坑:发现页面请求了两次,第一次的页面token不是合法token

  • 用seesion来访问保存cookie这样成功率高点


声明:本文只做技术交流,不提供源码,如有侵权,请告知删除,谢谢。

一直原创,从未转载

请认准我,将我置标


转发,好看支持一下,感谢


  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net