程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-06(2)

翻译小工具制作,Python简单破解有道JS加密!

发布于2020-02-10 14:40     阅读(1182)     评论(0)     点赞(11)     收藏(3)


写这篇文章之前,我记得我以前好像公布一次。百度翻译的接口把版本号修改可以得到老版本,而老版本是没JS加密的,有道的呢也是一样的。

 

不过今天的教程不会这么low,咱们今天就老老实实把有道翻译的JS破解掉,毕竟有道的JS加密是罕见的简单。

先看效果:

编辑搜图

 

请点击输入图片描述

开始教程:

第一步抓包:

编辑搜图

 

请点击输入图片描述

 

直接就很容易的抓到了,哦 不对, 应该是比较有经验的人可以直接就抓到。

返回值内地tgt为我们所对应的翻译内容。

仔细分析这个包:

编辑搜图

 

请点击输入图片描述

post请求,然后经过反复测试后发现,其中的salt,sign,ts是会发生变化的。

不难发现ts仅仅比salt少了一位,前面的都是一样的。而如果你有经验,看到ts就会知道这个是现行时间。

当然这个也只是猜测,不能当真。所以我们可以去寻找一下salt的来源,它到底是由什么方法生成的,然后我们用python代码去模拟。

编辑搜图

 

请点击输入图片描述

 

随便一下就找到了,当然这个也是要经验的。我们可以看到的信息量很足。比如i = r +随机数,而r=ts,i=salt。不就验证了我们的猜想——不难发现ts仅仅比salt少了一位,前面的都是一样的。

而r = (new Date).getTime(),这不就是取现行时间吗?即使你不懂JS语法,你也能猜到吧?那么OK ,salt与ts我们都已经得到。

而sign的值我们如何得到呢?

就是个md5摘要,里面的只有两个变量,e、i,而i我们已经在前面得到了。那么如何得到e,甚至我们前面t = n.md5(navigator.appVersion),bv=t,很明显 即使bv也是加密的,只是我们的navigator.appVersion是一个定值。

那么怎么得到他们的值呢?debug即可!

编辑搜图

 

请点击输入图片描述

​OK,到此为止所有问题都已经解决,e为我们所查询的字符串,navigator.appVersion为我们的用户代理。(模拟请求时,记得添加请求报文。)

如果您觉得我的文章对您有所帮助,那么可以关注我,更加方便的给您推送最新技术。



所属网站分类: 技术文章 > 博客

作者:丸子

链接:https://www.pythonheidong.com/blog/article/230356/ac02bcf36072033f1c1d/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

11 0
收藏该文
已收藏

评论内容:(最多支持255个字符)