百度翻译参数逆向过程

2023-11-15

翻译网站sign参数逆向

网址:aHR0cHM6Ly9mYW55aS5iYWlkdS5jb20v

JS调试

加密参数sign:
在这里插入图片描述
使用XHR断点
在这里插入图片描述

再查看方法调用栈
在这里插入图片描述

很容易定位到加密函数
在这里插入图片描述
经测试,原来就是这个b函数进行的加密,参数就是我们要翻译的词
在这里插入图片描述

进到函数里,下断点
在这里插入图片描述
就是这个函数了,直接开扣

JS代码

直接扣代码
补一个r,一个n函数即可

var r = '320305.131321201';
function n(t, e) {
    for (var n = 0; n < e.length - 2; n += 3) {
        var r = e.charAt(n + 2);
        r = "a" <= r ? r.charCodeAt(0) - 87 : Number(r),
            r = "+" === e.charAt(n + 1) ? t >>> r : t << r,
            t = "+" === e.charAt(n) ? t + r & 4294967295 : t ^ r
    }
    return t
}
function _sss(t) {
    var o, i = t.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g);
    if (null === i) {
        var a = t.length;
        a > 30 && (t = "".concat(t.substr(0, 10)).concat(t.substr(Math.floor(a / 2) - 5, 10)).concat(t.substr(-10, 10)))
    } else {
        for (var s = t.split(/[\uD800-\uDBFF][\uDC00-\uDFFF]/), c = 0, u = s.length, l = []; c < u; c++)
            "" !== s[c] && l.push.apply(l, function (t) {
                if (Array.isArray(t))
                    return e(t)
            }(o = s[c].split("")) || function (t) {
                if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"])
                    return Array.from(t)
            }(o) || function (t, n) {
                if (t) {
                    if ("string" == typeof t)
                        return e(t, n);
                    var r = Object.prototype.toString.call(t).slice(8, -1);
                    return "Object" === r && t.constructor && (r = t.constructor.name),
                        "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? e(t, n) : void 0
                }
            }(o) || function () {
                throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
            }()),
            c !== u - 1 && l.push(i[c]);
        var p = l.length;
        p > 30 && (t = l.slice(0, 10).join("") + l.slice(Math.floor(p / 2) - 5, Math.floor(p / 2) + 5).join("") + l.slice(-10).join(""))
    }
    for (var d = "".concat(String.fromCharCode(103)).concat(String.fromCharCode(116)).concat(String.fromCharCode(107)), h = (null !== r ? r : (r = window[d] || "") || "").split("."), f = Number(h[0]) || 0, m = Number(h[1]) || 0, g = [], y = 0, v = 0; v < t.length; v++) {
        var _ = t.charCodeAt(v);
        _ < 128 ? g[y++] = _ : (_ < 2048 ? g[y++] = _ >> 6 | 192 : (55296 == (64512 & _) && v + 1 < t.length && 56320 == (64512 & t.charCodeAt(v + 1)) ? (_ = 65536 + ((1023 & _) << 10) + (1023 & t.charCodeAt(++v)),
            g[y++] = _ >> 18 | 240,
            g[y++] = _ >> 12 & 63 | 128) : g[y++] = _ >> 12 | 224,
            g[y++] = _ >> 6 & 63 | 128),
            g[y++] = 63 & _ | 128)
    }
    for (var b = f, w = "".concat(String.fromCharCode(43)).concat(String.fromCharCode(45)).concat(String.fromCharCode(97)) + "".concat(String.fromCharCode(94)).concat(String.fromCharCode(43)).concat(String.fromCharCode(54)), k = "".concat(String.fromCharCode(43)).concat(String.fromCharCode(45)).concat(String.fromCharCode(51)) + "".concat(String.fromCharCode(94)).concat(String.fromCharCode(43)).concat(String.fromCharCode(98)) + "".concat(String.fromCharCode(43)).concat(String.fromCharCode(45)).concat(String.fromCharCode(102)), x = 0; x < g.length; x++)
        b = n(b += g[x], w);
    return b = n(b, k),
    (b ^= m) < 0 && (b = 2147483648 + (2147483647 & b)),
        "".concat((b %= 1e6).toString(), ".").concat(b ^ f)
}

console.log(_sss('你好'));

python调用

# -*- coding: utf-8 -*-
"""
   / $$$$$$$
  | $$___  $$
  | $$   \__/  | $$  | $$ $$$$$  $$$$$   / $$$$$$  | $$ $$$$$
  | $$         \__   | $$$___ $$$___ $$ / $$___ $$ | $$$___ $$
   \ $$$$$$$   | $$  | $$   | $$   | $$ | $$  | $$ | $$   | $$
    \_____ $$  | $$  | $$   | $$   | $$ | $$  | $$ | $$   | $$
         | $$  | $$  | $$   | $$   | $$ | $$  | $$ | $$   | $$
  | $$   | $$  | $$  | $$   | $$   | $$ | $$  | $$ | $$   | $$
   \ $$$$$$$   | $$  | $$   | $$   | $$ |  $$$$$$/ | $$   | $$
    \_____/     \__   \__    \__    \__  \______/   \__    \__
"""
# @author:Simon
# @wechat:python_master1120
import requests, execjs

def translate():
    keyword = input('请输入要翻译的词:')
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36",
    }
    cookies = {
       '天王盖地虎'
    }
    url = "宝塔镇河妖"
    params = {
        "from": "auto",
        "to": "auto"
    }
    sign = execjs.compile(open('baidufanyi.js', encoding='utf-8').read()).call("_sss", keyword)
    data = {
        "from": "auto",
        "to": "auto",
        "query": keyword,
        "transtype": "translang",
        "simple_means_flag": "3",
        "sign": sign,
        "token": "0e2943a3181aea10dfb23cb4120d1895",
        "domain": "common"
    }
    response = requests.post(url, headers=headers, cookies=cookies, params=params, data=data)
    print(response.json()['trans_result']['data'][0]['dst'])
if __name__ == '__main__':
    while True:
        translate()

搞定收工!
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

百度翻译参数逆向过程 的相关文章

  • 如何计算 pandas datetime 对象的均值和方差?

    如何计算 YYYY MM DD 形式的 python 日期时间对象的汇总统计数据 均值和标准差 我想对具有不同 ID 的不同日期时间对象组执行此操作 数据如下 import datetime as dt df pd DataFrame Da
  • Gunicorn 工作人员无论如何都会超时

    我正在尝试通过gunicorn运行一个简单的烧瓶应用程序 但是无论我做什么 我的工作人员都会超时 无论是否有针对应用程序的活动 工作人员在我设置任何内容后总是会超时timeout值到 是什么导致它们超时 当我发出请求时 请求成功通过 但工作
  • 在 Python 中将列表元素作为单独的项目返回

    Stackoverflow 的朋友们大家好 我有一个计算列表的函数 我想单独返回列表的每个元素 如下所示 接收此返回的函数旨在处理未定义数量的参数 def foo my list 1 2 3 4 return 1 2 3 4 列表中的元素数
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • 使用主题交换运行多个 Celery 任务

    我正在用 Celery 替换一些自制代码 但很难复制当前的行为 我期望的行为如下 创建新用户时 应向tasks与交换user created路由键 该消息应该触发两个 Celery 任务 即send user activate email
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • python multiprocessing 设置生成进程等待

    是否可以生成一些进程并将生成进程设置为等待生成的进程完成 下面是我用过的一个例子 import multiprocessing import time import sys def daemon p multiprocessing curr
  • Python 3d 绘图设置固定色阶

    我正在尝试绘制两个 3d 数组 第一个数组的 z 值在范围内 0 15 0 15 第二个来自 0 001 0 001 当我绘图时 色标自动遵循数据范围 如何设置自定义比例 我不想看到 0 001 的浅色 而应该看到 0 15 的浅色 如何修
  • PyQt 使用 ctrl+Enter 触发按钮

    我正在尝试在我的应用程序中触发 确定 按钮 我当前尝试的代码是这样的 self okPushButton setShortcut ctrl Enter 然而 它不起作用 这是有道理的 我尝试查找一些按键序列here http ftp ics
  • Pycharm 在 os.path 连接上出现“未解析的引用”

    将pycharm升级到2018 1 并将python升级到3 6 5后 pycharm报告 未解析的引用 join 最新版本的 pycharm 不会显示以下行的任何警告 from os path import join expanduser
  • 导入错误:没有名为flask.ext.login的模块

    我的flask login 模块有问题 我已经成功安装了flask login模块 另外 从命令提示符我可以轻松运行此脚本 不会出现错误 Python 2 7 r27 82525 Jul 4 2010 07 43 08 MSC v 1500
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • 每当使用 import cv2 时 OpenCV 都会出错

    我在终端上使用 pip3 install opencv contrib python 安装了 cv2 并且它工作了 但是每当我尝试导入 cv2 或运行导入了 cv2 的 vscode 文件时 在 python IDLE 上它都会说 Trac
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 在virtualenv中下载sqlite3

    我正在尝试使用命令创建应用程序python3 manage py startapp webapp但我收到一条错误消息 django core exceptions ImproperlyConfigured 加载时出错 pysqlite2 或
  • 根据 Pandas 中的列表选择数据框行的子集

    我有一个数据框df1并列出x In 22 import pandas as pd In 23 df1 pd DataFrame C range 5 B range 10 20 2 A list abcde In 24 df1 Out 24
  • pytest找不到模块[重复]

    这个问题在这里已经有答案了 我正在关注pytest 良好实践 https docs pytest org en latest explanation goodpractices html test discovery或者至少我认为我是 但是
  • python 对浮点数进行不正确的舍入

    gt gt gt a 0 3135 gt gt gt print 3f a 0 314 gt gt gt a 0 3125 gt gt gt print 3f a 0 312 gt gt gt 我期待 0 313 而不是 0 312 有没有
  • 如何在Python脚本中从youtube-dl中提取文件大小?

    我是 python 编程新手 我想在下载之前提取视频 音频大小 任何 YouTube 视频 gt gt gt from youtube dl import YoutubeDL gt gt gt url https www youtube c

随机推荐

  • CTFshow-pwn入门-前置基础pwn23-pwn25

    pwn23 25的题目会涉及到ret2shellcode ret2libc等内容 本篇文章只会侧重研究这几道题目的wp 不会过多涉及到ret2shellcode ret2libc的基本原理 等有时间再来写关于ret2libc ret2she
  • 移动游戏平台的新趋势分享—91-mgas大会

    移动游戏平台的新趋势分享 91 mgas大会 随着智能手机与平板电脑等设备的普及 移动游戏以惊人的速度深入到人们生活当中 玩家的选择范围进一步扩大 包括角色扮演 策略游戏 棋牌游戏 休闲益智 动作冒险 但耐心在降低 而角色扮演和策略游戏的混
  • 【单片机毕业设计】【mcuclub-dz-047】基于单片机的消毒器设计

    最近设计了一个项目基于单片机的消毒器设计 与大家分享一下 一 基本介绍 项目名 基于单片机的消毒器的设计 项目编号 mcuclub dz 047 单片机 STM32F103C8T6 功能简介 1 通过液位传感器检测液位 当液位较低 通过GS
  • java毕业设计——基于JSP+J2EE+sqlserver的超市综合信息管理系统设计与实现(毕业论文+程序源码)——超市综合信息管理系统

    基于JSP J2EE sqlserver的超市综合信息管理系统设计与实现 毕业论文 程序源码 大家好 今天给大家介绍基于JSP J2EE sqlserver的超市综合信息管理系统设计与实现 文章末尾附有本毕业设计的论文和源码下载地址哦 需要
  • 如何在python pyqt窗口中,嵌入notepad、word、计算器

    import sys from PyQt5 QtWidgets import QApplication QWidget from ctypes import 成功了 class App QWidget def init self super
  • GIS状态检测新技术——振动分析法

    提示 唐老师好 我之前因为 阳 了 所以就没有参与汇报 给老师带来不便 请老师见谅 以此篇文章代替课堂汇报 文章目录 前言 一 不同故障对应的振动频谱和故障特征量 二 GIS设备振动特征估计 1 GIS设备状态空间 2 粒子滤波 三 GIS
  • vue+element-ui 项目实战示例详解【目录】

    vue 和 element是两个流行的前端即时 通常用于管理后台 PC等页面 能够快速构建美观的界面 1 vue2 介绍 Vue js是一个流行的JavaScript框架 用于构建用户界面 它的版本分为Vue 2和Vue 3 而Elemen
  • bootstrap 和 ant design css样式 冲突 导致图标移位

    bootstrap 和 ant design 冲突 导致图标移位 body anticon transform translate 0 5px 3px
  • 命令模式代码示例

    package com example mingling 执行命令的接口 author Administrator public interface Command void execute package com example ming
  • 【马士兵】Python基础--08(字典)

    Python基础 08 文章目录 Python基础 08 基础知识 字典的组成及原理 字典的创建方式 字典元素的获取 字典元素的增删改操作 获取字典视图 字典元素的遍历 字典生成式 基础知识 可变序列 目前包括字典 列表 不可变序列 目前包
  • 数电学习笔记

    数电学习笔记 背景 笔记正文 背景 在刚开学那段时间把清华大学阎石老师的 数字电子技术基础 第五版又看了一遍 记了点笔记 刚好实验室的打印机有扫描功能 于是把笔记分享一下 笔记正文 以上
  • jni中如何查看函数签名

    操作步骤 第一步 找到 build 文件夹 第二步 找到 javac 文件夹 第三步 找到自己写的 xxx class文件 第四步 右键 xxx class 文件 在 Terminal 中打开 第五步 执行 javap s xxx clas
  • 飞浆(paddle)实现机器学习

    一 飞浆 paddle 介绍 飞桨是国内唯一功能完备的端到端开源深度学习平台 集深度学习训练和预测框架 模型库 工具组件和服务平台为一体 拥有兼顾灵活性和高性能的开发机制 工业级应用效果的模型 超大规模并行深度学习能力 推理引擎一体化设计以
  • [机缘参悟-88]:什么是平台?国家、公司、家庭、硬件、软件、应用?

    目录 前言 1 什么是平台 1 1 英文是platform 1 2 百度百科 1 3 平台的现实案例 2 平台的特征 2 1 相对性 2 2 层次性 2 3 广泛性 第3章 三大系统 3 1 软硬件系统中的平台 3 2 人类社会的平台 3
  • linux网卡team0,team

    1 安装teamd root web01 yum y install teamd 2 停止NetworkManager什么是NetworkManager呢 NetworkManager服务是管理和监控网络设置的守护进程 CentOS7更加注
  • 直方图均衡化算法、直方图匹配算法 C++ 代码

    这两天一直在研究匀光匀色算法才了解到了直方图匹配算法 想要了解这个算法又要先了解直方图均衡化算法 通过网上查找了很多资料 没有现成C 代码 经过仔细思考和实验后大概复现了该算法 特此记录 以备查阅 参考链接如下 1 匀光匀色 直方图匹配算法
  • Spring扫描类的原理

    作为Java的开发者Spring可以称之为神一样的存在框架 好处太多无法用言语表达只能称之为Java排名的number one 框架 我们使用Spring它帮助我们实例化了很多Bean对象 但是这些Bean是怎样加载到Spring容器中的呢
  • LeetCode:Binary Tree Preorder Traversal(非递归方法前序遍历二叉树)

    Given a binary tree return the preorder traversal of its nodes values For example Given binary tree 1 2 3 1 2 3 return 1
  • clinvar数据库(1)

    遗传变异的数据库注释非常简单 就是从数据库里面下载记录文件 然后根据坐标对应一下即可 甚至很多成熟的工具都可以自动下载数据库以及比对 就跟我们前面讲到的把vcf文件注释到dbSNP数据库的ID一样简单 而clinvar的注释 可以寻找出对应
  • 百度翻译参数逆向过程

    翻译网站sign参数逆向 网址 aHR0cHM6Ly9mYW55aS5iYWlkdS5jb20v JS调试 加密参数sign 使用XHR断点 再查看方法调用栈 很容易定位到加密函数 经测试 原来就是这个b函数进行的加密 参数就是我们要翻译的