Python爬虫之Js逆向案例(6)-某道翻译

Python爬虫之Js逆向案例(6)-有道翻译

声明:某道翻译加密逆向分析仅用于研究和学习,如有侵权,可联系删除

大家好,距离上次分享js逆向案例已经有一个月了,在这期间每次在快要揭秘出来时、整理文章的时发现某乎的加密又又又更新了、、、,导致近期长时间没有更新文章了。同时也收到了很多童鞋的催更,这里说一下哈,并不是我忘记了,或者懈怠了,只是一直在从头逆向某乎而已、、、为了继续更新逆向100例,我决定先暂停某乎的文章输出,等稳定了在案例一下,不然今天扣的代码明天又不能用了、、、,还是先分享其他平台的案例吧,这里就不多说了哈!!!

今天的案例对象是某道在线翻译,如果有同学想做一个类似划词翻译的浏览器插件的,或者开发一个vscode插件练手,可以通过本次分享get到一些经验。

为了照顾刚入门童鞋,文章每一步的分析过程尽可能的详细(有经验的同学可以选择感兴趣的地方快速预览)

下面会进行以下几步进行分析(下方演示过程全部使用chrome浏览器);

  1. 锁定关键接口;
  2. 锁定关键字段;
  3. 破解关键字段;
  4. python爬虫结果演示;

一.锁定关键接口

浏览器f12,打开调试面板,翻译窗口里输入内容后触发接口如下图:

Python爬虫之Js逆向案例(6)-某道翻译_第1张图片

高能总结:
1.勾选上图1.处的Preserve log,原因方便我们比对两次请求都有哪些字段是变化的,通常变化的字段就特别需要留意的,很有里面很有可能是加密字段。有的接口每次输入完之后页面的url内容也跟着变导致页面刷新,如果不勾选的话,会很难比对每次请求变化的内容。(有道的这个貌似并不会导致页面刷新,所以本次勾不勾看不出效果,可以去知乎的搜索试试这个方法就很明显了);
2.通常比对变化字段的地方有上图中的3.处的PayloadHeaders两个地方;

有经验的童鞋可能一眼就能猜出来大概那些是加密字段。

二.锁定关键字段

通过上面的比对,发现每次变化的字段有4个,分别是:salt|sign|lts|bv, headers中本次没有发现可疑字段。其中加密字段感觉有两个sign&bv,如下图:
Python爬虫之Js逆向案例(6)-某道翻译_第2张图片
大概的字段已经锁定,接下来就分析这俩字段;

三.破解关键字段

老规矩,先查询一下sign字段出现的位置,流程如下图:
Python爬虫之Js逆向案例(6)-某道翻译_第3张图片
把所有对sign字段赋值的地方都打上断点,如上图:

输入内容,断点捕获,如下图,很容易发现salt|sign|lts|bv值是怎么来的,
Python爬虫之Js逆向案例(6)-某道翻译_第4张图片
因此,
ts: 13位的时间戳
saltts+1位随机数
bv: md5(navigator.appVersion)
sign: md5("fanyideskweb" + 要翻译的内容 + salt + "Ygy_4c=r#e#4EX^NUGUc5")

其它字段都是除了要翻译的内容字段i都是定值;

高能总结:
1.md5加密算法可能会被重写,我们需要先确保md5有没有被改写,可以先去网上在线加密一下,看看和调试的时候是否相同,如果不同还需要我们把对应md5加密代码扣出来,这里巧了,验证后没有被改写,所以我就不单独演示扣md5了;

到这里关键字段基本算是理论破解完成了,是不是很简单!!!

四.python爬虫结果演示

如何快速的写python代码呢?这里推荐一个工具网站: 爬虫工具库,演示一下如何使用这个库,

  1. 在接口上右键,拷贝cURL,如下图:
    Python爬虫之Js逆向案例(6)-某道翻译_第5张图片

  2. 打开这个链接 爬虫工具库,粘贴到这个curl转requests这里,如下图:

Python爬虫之Js逆向案例(6)-某道翻译_第6张图片

右侧会立即呈现对应python代码,复制出来,可直接运行,是不是很快就有了对应的python文件!

拿到转化后的python代码之后,我们还需要进行改造,把对应加密的东西给补上,就成了哦!

下面看结果演示:
Python爬虫之Js逆向案例(6)-某道翻译_第7张图片
有道逆向到此完!

下一节预计分享webpack逆向的案例!!!

后期会持续分享爬虫案例-100例,不想自己造轮子的同学可加入我的知识星球,有更多惊喜、技巧、高能总结等你哦!!!;

欢迎加入「python、爬虫、逆向Club」知识星球

你可能感兴趣的:(python爬虫,js逆向,python,爬虫,javascript)