逆向百度翻译

2023-10-31

逆向步骤

  1. 访问首页,https://fanyi.baidu.com/, 获取set-cookie
  2. 第二次根据cookie 获取的首页包含token(正则匹配出来)
  3. 算出sign,根据查询入参,js逆向算出sign
  4. 最终 cookie,sign,和 token 加上固定参数,查询结果

在这里插入图片描述

具体步骤

1.第一次获取cookie,访问首页https://fanyi.baidu.com/

在这里插入图片描述
2. 保持cookie会话,获取首页html中,正则token
在这里插入图片描述

3.在控制台中搜索 sign: 找到查询的js, 抠出I(e)函数生成加密的sign方法
在这里插入图片描述
注意里面有window变量没有的,需要断点手动替换下,如下效果
在这里插入图片描述
js sign代码

function n(r, o) {
    for (var t = 0; t < o.length - 2; t += 3) {
        var a = o.charAt(t + 2);
        a = a >= "a" ? a.charCodeAt(0) - 87 : Number(a),
        a = "+" === o.charAt(t + 1) ? r >>> a : r << a,
        r = "+" === o.charAt(t) ? r + a & 4294967295 : r ^ a
    }
    return r
};

function e(r) {
    var o = r.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g);

    var i = null;

    if (null === o) {
        var t = r.length;
        t > 30 && (r = "" + r.substr(0, 10) + r.substr(Math.floor(t / 2) - 5, 10) + r.substr(-10, 10))
    } else {
        for (var e = r.split(/[\uD800-\uDBFF][\uDC00-\uDFFF]/), C = 0, h = e.length, f = []; h > C; C++)
            "" !== e[C] && f.push.apply(f, a(e[C].split(""))),
            C !== h - 1 && f.push(o[C]);
        var g = f.length;
        g > 30 && (r = f.slice(0, 10).join("") + f.slice(Math.floor(g / 2) - 5, Math.floor(g / 2) + 5).join("") + f.slice(-10).join(""))
    }
    var u = void 0
      , l = "" + String.fromCharCode(103) + String.fromCharCode(116) + String.fromCharCode(107);
    u = null !== i ? i : (i = "320305.131321201" || "") || "";
    for (var d = u.split("."), m = Number(d[0]) || 0, s = Number(d[1]) || 0, S = [], c = 0, v = 0; v < r.length; v++) {
        var A = r.charCodeAt(v);
        128 > A ? S[c++] = A : (2048 > A ? S[c++] = A >> 6 | 192 : (55296 === (64512 & A) && v + 1 < r.length && 56320 === (64512 & r.charCodeAt(v + 1)) ? (A = 65536 + ((1023 & A) << 10) + (1023 & r.charCodeAt(++v)),
        S[c++] = A >> 18 | 240,
        S[c++] = A >> 12 & 63 | 128) : S[c++] = A >> 12 | 224,
        S[c++] = A >> 6 & 63 | 128),
        S[c++] = 63 & A | 128)
    }
    for (var p = m, F = "" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(97) + ("" + String.fromCharCode(94) + String.fromCharCode(43) + String.fromCharCode(54)), D = "" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(51) + ("" + String.fromCharCode(94) + String.fromCharCode(43) + String.fromCharCode(98)) + ("" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(102)), b = 0; b < S.length; b++)
        p += S[b],
        p = n(p, F);
    return p = n(p, D),
    p ^= s,
    0 > p && (p = (2147483647 & p) + 2147483648),
    p %= 1e6,
    p.toString() + "." + (p ^ m)
};

e('工作');

最终结果(https://fanyi.baidu.com/v2transapi?from=zh&to=en):
在这里插入图片描述
接下来就是golang代码封装演示:
在这里插入图片描述
开源源码demo
https://github.com/Xuzan9396/my_baidufanyi

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

逆向百度翻译 的相关文章

  • vs2019登录不上账号怎么办

    别用校园网 用手机热点几分钟就登录上了 惨痛的教训
  • Android APP间跳转

    1 通过包名启动APP 启动方式 只需知道目标APP包名即可 例如 app1 跳转到app2 app2包名为 com demo skipdemo app1启动代码如下 通过目标APP的包名创建intent对象 Intent intent g
  • Hyper-V安装图形化界面

    七 Hyper V安装图形化界面 此处主要需要时间下载界面的安装包 故在此只贴出操作 1 登录 然后键入命令 yum grouplist 可以看到Avilable Environment Groups 中有图形界面GNOME Desktop
  • 求特殊方程的正整数解

    本题要求对任意给定的正整数N 求方程X2 Y2 N的全部正整数解 输入格式 输入在一行中给出正整数N 10000 输出格式 输出方程X2 Y2 N的全部正整数解 其中X Y 每组解占1行 两数字间以1空格分隔 按X的递增顺序输出 如果没有解
  • SpringBoot不同环境加载不同配置文件

    Spring不同环境加载不同配置文件 resource profile 我们在使用spring的时候 一般都会有不同的环境需要部署 开发环境 测试环境和生产环境 而不同的环境则会有不同的配置 比如数据库ip 解决这个问题 我所熟悉的有两种策
  • java中如何将String类型的日期格式为yyyyMMdd转化为date类型的yyyy-MM-dd格式

    今天在做webservice接口服务的时候 xml文件传入的一个节点为人员的出生日期 对应实体类的字段类型为Date类型 获取到的值为String类型 代码如下 获取的值为 19570323 String dateString emp ge
  • jquery之index与selectedIndex

    晚上有时间 继续再写一点 我们来讲一下关于select表单的所有操作 在项目中还是有很多地方需要用到的 讲select之前先讲一下index 的用法 很长时间之前用过一回 熟悉一下还是有用处的 1 index 同级元素的index 获得第一
  • JavaParser入门:以编程方式分析Java代码

    我最喜欢的事情之一是解析代码并对其执行自动操作 因此 我开始为JavaParser做出贡献 并创建了两个相关项目 java symbol solver和Effectivejava 作为JavaParser的贡献者 我反复阅读了一些非常类似的
  • cv2读取视频每10帧保存一张图像

    读取本地mp4视频 每隔10帧保存一张图像到本地 导入所有必要的库 import cv2 import os RootDir Users billiards SaveDir os path join RootDir data 从指定的路径读
  • GICP 配准点云(附python 代码)

    import open3d as o3d import numpy as np import copy def draw registration result src tar transformation source temp copy
  • IP地址分类(A,B,C,D,E类)

    A类的10 0 0 0 10 255 255 255 B类的172 16 0 0 172 31 255 255 C类的192 168 0 0 192 168 255 255为私网IP 除此之外 A B C三类的所有其余IP都是公网IP 或者
  • 记录Python学习 1:列表字符串转数字

    问题 如何将列表 1 2 3 4 5 中的字符串型转化为数值型 通常在使用 lst input split 获得输入时 列表里为字符串型 有时需要进行转换 常用的有两种方法 方法一 利用列表推导式 lst 1 2 3 4 5 lst int
  • android APP调用系统方法

    一般来说 有些系统方法是不提供在 中的 这种情况下 需要把app的源码放到系统源码的目录下编写Android mk进行编译 使其能访问到 hide的系统方法 但是 即使编译通过 在系统中运行的时候 仍然会碰到权限被拒绝的问题 昨天 我在AP
  • 语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖

    文章目录 语句覆盖 判定覆盖 条件覆盖 条件 判定覆盖 组合覆盖 路径覆盖 逻辑覆盖率 语句覆盖 lt 条件覆盖 lt 判定覆盖 lt 条件 判定覆盖 lt 组合覆盖 lt 路径覆盖 语句覆盖 基本思想 设计用例 使程序中的每个可执行语句至
  • DENOISING DIFFUSION IMPLICIT MODELS 论文笔记

    前言 生成模型现在主要分为两类 分别是GAN和Diffusion Model 但是GAN存在一个很棘手的问题就是训练不稳定 这也是Diffusion Model相比之下的优势 DDPM是基于Markovian扩散过程的模型 虽然在生成模型上
  • Java循环结构和DeBug概述

    循环结构 掌握while 循环 先判断在执行 1 循环初始化变量 2 循环条件 3 循环操作 4 循环出口 将循环条件逐渐变为不满足 例图下 do while 循环 先执行在判断 1 声明键盘录入 无论条件是否合格 都会先执行依次循环操作
  • Basic Level 1067 试密码 (20分)

    题目 当你试图登录某个系统却忘了密码时 系统一般只会允许你尝试有限多次 当超出允许次数时 账号就会被锁死 本题就请你实现这个小功能 输入格式 输入在第一行给出一个密码 长度不超过 20 的 不包含空格 Tab 回车的非空字符串 和一个正整数

随机推荐

  • MQTT 消息通信工具使用

    MQTT 介绍 MQTT是机器对机器 M2M 物联网 IoT 连接协议 它被设计为一个极其轻量级的发布 订阅消息传输协议 对于需要较小代码占用空间和 或网络带宽非常宝贵的远程连接非常有用 是专为受限设备和低带宽 高延迟或不可靠的网络而设计
  • Node.js的前世今生,Node.js和npm安装教程

    Node js是目前非常火热的技术 但是它的诞生经历却很奇特 众所周知 在Netscape设计出JavaScript后的短短几个月 JavaScript事实上已经是前端开发的唯一标准 后来 微软通过IE击败了Netscape后一统桌面 结果
  • SpringBoot实战(二十四)集成 LoadBalancer

    目录 一 简介 1 定义 2 取代 Ribbon 3 主要特点与功能 4 LoadBalancer 和 OpenFeign 的关系 二 使用场景一 Eureka LoadBalancer 服务A loadbalancer consumer
  • Qt 集成 FFmpeg 实现颜色格式转换

    目录 1 Qt 集成 FFmpeg 1 1 下载 FFmpeg 1 2 Qt 集成 FFmpeg 1 2 1 修改 pro 文件 1 2 2 放入 dll 文件 1 2 3 代码中使用 FFmpeg 2 图像格式转换 3 预览 4 项目地址
  • 图形学--Transformation

    为什么突然写图形学的东西了呢 当然是学校要上这门课 摊 2D Transformation scale 缩放 其中这个对角矩阵是缩放矩阵 Reflection 反转 Shear 切变 Roatate 旋转 默认绕原点旋转 逆时针 旋转 角是
  • Android 使用ViewPager创建导航页(最简单方法,不服来辩)

    要说写一个APP最先要写的是什么 那肯定是导航页了 导航页怎么实现呢 这里介绍其中一种使用方法ViewPager 好了废话不多说 一 VIewPager是什么 ViewPager继承自ViewGroup 是一个View容器 用于装载多个Vi
  • 网络编程学习笔记(基础)

    序言 这个博客有点 胡吃海喝 的味道 所写虚于所实哈 笔记记的是一个B站up主的 目录 TCP 双向的沟通 双向奔赴 gt 稳定 UDP 单向的沟通 单相思 gt 发送 网络编程的作用 网络编程的重点在于 联机 单机游戏和联机游戏的区分 网
  • R从文件中读取数据,输出文件

    看了几天的书 终于到这一步了 说实话 用R来做统计 很少有人手动的去输入那些数字 肯定是从别的地方导入的 我们用来处理就可以了 所以到这里才算是真正的入门 前面都是做基础的练手 我学习R从 R语言与统计分析 入手 第一个例子 从书上的例子
  • window消息,窗口学习笔记

    线程和窗口的关系 如上图在 点击了窗口后 int a 100 这条语句不会执行 知道把窗口关闭掉才会执行 如果把SendMessage函数改为PostMessage函数 则直接会执行到这条语句
  • java代码对比工具_代码比较工具(Diffuse)

    支持命令行提示和一个基于GUI的窗口工具包 他在命令行中的速度是相当快的 支持像 C Python Java XML 等语言的语法高亮显示 可视化比较 非常直观 支持两相比较和三相比较 这就是说 使用 Diffuse 你可以同时比较两个或三
  • ChatGPT 太贵?一键部署自己的私有大模型

    部署你的私有化对话机器人 只需要三步 克隆 github 中文版 LLaMa repo 下载 HuggingFace 13B 16K 完整模型 启动对话窗口 没错 就是这么简单 我把这份操作指南 做成了一份 Jupyter Notebook
  • 遗传算法(GA)优化BP神经网络分类预测,GA-BP分类预测,多特征输入模型。多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab,程序可出分类效

    清空环境变量 warning off 关闭报警信息 close all 关闭开启的图窗 clear 清空变量 clc 清空命令行 导入数据 res xlsread 数据集 xlsx 划分训练集和测试集 P train res 1 250 1
  • 萤火学堂视频:硬件设计-PCB原理图简要讲解

    萤火学堂 视频 硬件设计 PCB原理图简要讲解 https v youku com v show id XNDY0MTYyNDk4NA 3D 3D html
  • java 批量查询es_java操作ES的简单查询和bool查询

    导入包 org elasticsearch client transport 5 2 2 org apache logging log4j log4j api 2 7 org apache logging log4j log4j core
  • 实验七,运算符重载

    一 实验目的和要求 熟悉运算符重载的定义和使用方法 二 实验内容 1 调试下列程序 sy7 1 cpp include
  • CSDN每日一练20230310

    题目名称 一维数组的最大子数组和 题目描述 下面是一个一维数组的 最大子数组的和 的动态规划的解法 include
  • ffmpeg-linux系统编译so库

    windows10下安装双系统 这个流程百度一下一大把资料 1 ubuntu 18 04 3 desktop amd64 iso 驱动器 2 安装VMware Workstation Pro 3 配置linux下配置ndk环境 4 下载ff
  • Android 7.0 Camera架构源码分析1 - CameraService启动

    本系列教程主要讲解Camera从APP层到HAL层的整个流程 第一篇先讲解CameraService的启动 后面会讲解open preview takepicture的流程 Android 7 0之前CameraService是在media
  • Java中抛出的内存异常总结

    Java中抛出的内存异常总结 根据上述的总结 可以整理出来 JVM在运行的时候大致会分为五个区域 方法区 堆区 本地方法栈 虚拟机栈 程序计数器 其中程序计数器不会报出OutOfMemoryError错误 其他的都有可能会报出这个错误 St
  • 逆向百度翻译

    逆向步骤 访问首页 https fanyi baidu com 获取set cookie 第二次根据cookie 获取的首页包含token 正则匹配出来 算出sign 根据查询入参 js逆向算出sign 最终 cookie sign 和 t