热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

逆向百度翻译

逆向步骤访问首页,https:fanyi.baidu.com,获取set-cookie第二次根据cookie获取的首页包含token(正则匹配出来)算出sign,根据查询入参&#

逆向步骤


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

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


推荐阅读
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 如何在服务器上配置SSL证书
    SSL证书是用于验证互联网上身份的一种数字凭证,通过启用HTTPS协议,确保用户与服务器之间的通信安全。本文将详细介绍如何在API和服务器上配置SSL证书,以提升网站的安全性和可信度。 ... [详细]
  • WinMain 函数详解及示例
    本文详细介绍了 WinMain 函数的参数及其用途,并提供了一个具体的示例代码来解析 WinMain 函数的实现。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 本文详细介绍了如何使用OpenSSL自建CA证书的步骤,包括准备工作、生成CA证书、生成服务器待签证书以及证书签名等过程。 ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • 精选在线API编辑工具推荐
    本文将介绍几款优秀的在线API编辑工具,包括它们的功能特点和使用方法,帮助开发者提高工作效率。 ... [详细]
  • 微信公众号推送模板40036问题
    返回码错误码描述说明40001invalidcredential不合法的调用凭证40002invalidgrant_type不合法的grant_type40003invalidop ... [详细]
  • 检查在所有可能的“?”替换中,给定的二进制字符串中是否出现子字符串“10”带 1 或 0 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 本文深入解析了 Kubernetes 控制平面(特别是 API 服务器)与集群节点之间的通信机制,并对其通信路径进行了详细分类。旨在帮助用户更好地理解和定制其安装配置,从而增强网络安全性,确保集群的稳定运行。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在PHP中实现腾讯云接口签名,以完成人脸核身功能的对接与签名配置时,需要注意将文档中的POST请求改为GET请求。具体步骤包括:使用你的`secretKey`生成签名字符串`$srcStr`,格式为`GET faceid.tencentcloudapi.com?`,确保参数正确拼接,避免因请求方法错误导致的签名问题。此外,还需关注API的其他参数要求,确保请求的完整性和安全性。 ... [详细]
author-avatar
mobiledu2502902777
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有