破解有道的JS文件来实现翻译

破解JS 文件

以有到翻译为例:
当我们输入要翻译的内容后,他将这个内容以一个叫 translate_o?..的文件经过post请求发送到服务器,经过翻译在返回来。
以前我也写过实现通过有到实现翻译的,,,脑部连接当然很垃圾,先了解一下把。。。

sign: b44c32dfd09c7d3387ba4f00b115e82c

一堆乱七八糟东东西,,这就是经过加密的。我们只有知道它的逻辑,才能破解它,伪造他。。只有JS 来处理逻辑操作。

.js文件是JavaScript语言文件的扩展名。
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。JavaScript已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

所以我们要去找 js 编码方式,可以在网页源代码中搜索 .js ,然后找到对应的链接,进去在搜一下有没有 From Date 的参数
在这里插入图片描述
然后我们就找到了丑化的文件,,,真的很丑啊
百度搜一个美化网站放进去一格式化,就是我们人类可以看懂的了。。。在线json解析工具
在这里插入图片描述
然后我们就找到了,,,hhhhh。
i : 是我们要翻译的内容
from和to :用默认AUTO (自动)就行
client: 客户端使用原来的
salt = r.salt 于是我们去找 r , r = g.generateSaltSign(n), 就是我们把需要翻译的内容传给这个函数

再往上找,这个意思就是 r(是另一个) 是一个函数,赋值给了t.generateSaltSign(也就是 g.generateSaltSign(n))
t.generateSaltSign = r

再往上找,找到函数的定义 ,,,太恶心了

var r = function(e) {

			var t = n.md5(navigator.appVersion),
				r = "" + (new Date).getTime(),  # 一个时间戳,前面加个 "" 将整形改变成字符型
				i = r + parseInt(10 * Math.random(), 10);
			return {
				ts: r,
				bv: t,
				salt: i,
				sign: n.md5("fanyideskweb" + e + i + "Nw(nmmbP%A-r6U3EUn]Aj")
			}
		};
  • salt 就是 i str(时间戳) + 0-10 之间的随机数
  • sign "fanyideskweb" + 翻译内容 + i + "Nw(nmmbP%A-r6U3EUn]Aj"
  • ts 时间戳
  • bv 是固定的,其实就是浏览器的版本,不用改

修改一下原来的

import requests
import json
import time,random,hashlib # 解码 md5


while True:
    content = input("请输入:")
    timestamp = time.time() * 1000  # 我们需要的是毫秒,所以承一千
    salt = str(timestamp) + str(random.randint(0, 10))
    temp = "fanyideskweb" + content + salt + "@6f#X3=cCuncYssPsuRUE"
    sign = hashlib.md5(temp.encode("utf-8")).hexdigest()
    if content == "":
        print("欢迎下次使用")
        break
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"

        , 'i': content,
        'from': 'AUTO',
        'to': 'AUTO',
        'smartresult': 'dict',
        'client': 'fanyideskweb',
        'salt': salt,
        'sign': sign,
        'ts': timestamp,
        'bv': 'cc652a2ad669c22da983a705e3bca726',
        'doctype': 'json',
        'version': '2.1',
        'keyfrom': 'fanyi.web',
        'action': 'FY_BY_REALTlME'
        }

    url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom=null'
    response = requests.get(url, params=headers)

    html = response.content.decode()
    target = json.loads(html)
    # print(html)
    print("翻译结果:")
    print(target['translateResult'][0][0]['tgt'])
    print()

。。。是不是感觉比之前更nb了一点点,,,

但是如果去看淘宝的 js 文件,,,,我选择 selenlum…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值