有道翻译超详细逆向解析

有道翻译接口:有道翻译_文本、文档、网页、在线即时翻译

目录

1.发起请求观察接口

2.解析sign的加密

2.1>.找到sign的加密位置

2.2>.解析sign的加密方式

3.获取响应加密值并解析

3.1>.获取到响应的加密值

3.2>.解析加密值

本文学习参考:

1.发起请求观察接口

如图所示:

自己简单观察一下 可以知道请求头中没有加密 而在表单数据中的 sign 和 mysticTime 是加密的

再思考下 sign 是32位(试试后发现)可以猜测是MD5加密 但还不能确定

                mysticTime 一看就是时间戳

该接口的响应值也是加密的 如图所示

所以我们整个解密过程就是:

        1.先找到 参数sign 的加密位置 并逆向出来

        2.请求翻译接口 获取请求返回的加密值 

        3.找到这加密值的位置 并逆向出来

2.解析sign的加密

2.1>.找到sign的加密位置

这里提供两个方法(经测试两种皆可实现)

        1.xhr断点 跟栈一步一步分析 

        2.检索加密参数名:sign

该过程就不赘述了

通过我们的断点调试发现这 sign值生成过两次 

如图 两次加密的e的值不同

所以我们回过头来再看请求的数据接口 是不是忽略了什么

果然 之前还请求了一个接口

而且里面也有sign 和 mysticTime 两个参数

而且根据请求顺序 也肯定是先请求了这个接口再请求webtranslate接口的

我们再来观察一下这接口的返回值 如图

里面有key和aesIv 虽然暂时还不清楚有什么用 但肯定之后会用到 先请求获取到再说

所以这个接口的sign是第一次生成的sign请求得到的

这个参数的加密方式比较简单 它就是该图片上的两个函数生成的 

2.2>.解析sign的加密方式

发现最后就是MD5的加密方式 来 让我们通过自己的代码来完成

如图所示 函数运行过程已标出 过程比较简单 最后就是函数_ 来实现MD5的加密

又我们知道该函数运行过两次 每次加密的值不同 生成的sign值也不同

我们在实现pyhton调用时 就可以通过字典实时传入数据 来获取sign值并取出

如图所示 

对应的js代码 如下

3.获取响应加密值并解析

3.1>.获取到响应的加密值

经过之前之前的解析  我们知道webtranslate的接口也是需要 sign和mysticTime 这两个加密参数

而我们又知道 sign的加密函数位置那重复运行了两次 正好与我们的请求的两个接口一样 所以我们可以判断这第二次运行得到的sign就是我们webtranslate接口的sign

现在我们去分析第二次的sign加密 发现其实这跟第一次的sign加密 唯一的区别就是 加密常数和时间戳不同 它加密的常数是 "Vy4EQ1uwPkUoqvcP1nIu6WiAjxFeA3Y3"  而这干好又是前一个数据接口的返回值 

欧克 接下来就简单了 传入不同的参数来加密获取对应的sign值就行 如图所示

3.2>.解析加密值

首先还是得先找到数据的加密位置,这里也还是提供两个方法(经测试都没问题)

        1.检索或hook-json.parse这个函数

因为这种返回值大部分都是以字典数据传出来的,而要实现这个肯定要用到json.paese函数

        2.直接xhr断点,跟栈解析即可

过程就直接跳过了 我们来看加密函数

进入解密函数 

我们分析下可知 这 e是加密值而 t和a 正好就是上一个接口的aesKey和aesIv的值 好接下来都对了

我们先把代码扣下来 通过node.js来运行

接下来我们来分析一下T函数的运行过程 进入函数

我们直接将之前的函数扣过来就行 

解密没有问题 接下来就是实现我们的python调用

因为加密值每次都不同 我们这里也是将数据以字典格式传入 如图所示

最后最后就是 通过python来调用该文件

经过测试没有问题 以上就是全部

如果想实现翻译成其他语言的文字 则改变data数据即可

代码用途
本代码仅供学习、研究和交流使用,禁止用于任何商业用途或非法用途。使用者应对其行为负责,作者不对代码的滥用或不当使用承担任何责任。

本文学习参考:

https://blog.csdn.net/i_likechard/article/details/139149380?spm=1001.2014.3001.5506https://blog.csdn.net/i_likechard/article/details/139149380?spm=1001.2014.3001.5506

https://blog.csdn.net/weixin_39755186/article/details/137955711?ops_request_misc=%257B%2522request%255Fid%2522%253A%25224d575600a46632f2867dc4ecd5a62170%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=4d575600a46632f2867dc4ecd5a62170&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-137955711-null-null.142^v102^pc_search_result_base5&utm_term=error%3A1C800064%3AProvider%20routines%3A%3Abad%20decrypt&spm=1018.2226.3001.4187https://blog.csdn.net/weixin_39755186/article/details/137955711?ops_request_misc=%257B%2522request%255Fid%2522%253A%25224d575600a46632f2867dc4ecd5a62170%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=4d575600a46632f2867dc4ecd5a62170&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-137955711-null-null.142^v102^pc_search_result_base5&utm_term=error%3A1C800064%3AProvider%20routines%3A%3Abad%20decrypt&spm=1018.2226.3001.4187

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值