【JS逆向】有道翻译-简单js逆向-小白篇

有道翻译接口-js解析

一、分析接口

在这里插入图片描述

二、判断参数

请求两次分析参数变化 判断需要解析的参数

在这里插入图片描述

由图片可知 变化的参数为 salt、sign、its

三、找到断点

方法一:

通过堆栈寻找使用到的js

在这里插入图片描述

方法二:

search全局搜索

在这里插入图片描述

展示断点

在这里插入图片描述

调试,分析参数含义

一、调试

搭上断点后通过引起页面变化激活断点 一步步调试 可知

e:需要翻译的文字

r:时间戳

i时间戳+随机数字

ts:时间戳

salt:时间戳+随机1-10

sign:“fanyideskweb” + 翻译文字 + salt + “Tbh5E8=q6U3EXe+&L[4c@”

在这里插入图片描述

至此 解析完毕

写代码

	var r = function(e) {
    // var t = n.md5(navigator.appVersion)
    var  r = "" + (new Date).getTime()
      , i = r + parseInt(10 * Math.random(), 10);
    return {
        ts: r,
        // bv: t,
        salt: i,
        sign: "fanyideskweb" + e + i + "Tbh5E8=q6U3EXe+&L[4c@"
    }
};

ret = r('你真帅')
console.log(ret)
import random
import time

import requests
import execjs
import hashlib


def get_salt(info):
    # def get_m_info(page):
    with open('youdao.js', "r") as f:
        prob_js = f.read()
    docjs = execjs.compile(prob_js)
    ret = docjs.call('r', info)
    return ret


def main():
    url = "https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule"
    headers = {
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36",
        "Cookie": "OUTFOX_SEARCH_USER_ID=-1554138040@10.169.0.84; JSESSIONID=aaapW9aLopu_9fyHTpkJx; OUTFOX_SEARCH_USER_ID_NCOO=1493641069.5893097; ___rl__test__cookies=1618814880882",
        "Referer": "https://fanyi.youdao.com/"
    }
    salt_dict = get_salt(word)
    md5 = hashlib.md5()
    md5.update(salt_dict.get('sign').encode())
    sign = md5.hexdigest()
    print(salt_dict)
    data = {
        "i": word,
        "from": "AUTO",
        "to": "AUTO",
        "smartresult": "dict",
        "client": "fanyideskweb",
        'salt': salt_dict.get('salt'),
        'sign': sign,
        'lts': salt_dict.get('ts'),
        'bv': 'b286f0a34340b928819a6f64492585e8',
        'doctype': 'json',
        'version': '2.1',
        'keyfrom': 'fanyi.web',
        'action': 'FY_BY_REALTlME'
    }

    response = requests.post(url, headers=headers, data=data)
    print(response.json())


if __name__ == '__main__':
    word = '哇哈哈'
    main()

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值