百度指数 Cipher-Text、百度翻译 Acs-Token 逆向分析

2023-10-27

K 哥之前写过一篇关于百度翻译逆向的文章,也在 bilibili 上出过相应的视频,最近在 K 哥爬虫交流群中有群友提出,百度翻译新增了一个请求头参数 Acs-Token,如果不携带该参数,直接按照以前的方法进行处理,会出现 1022 报错,并且如果直接将 Acs-Token 写成定值,前几次可能能成功,多查询几次也会报同样的错误,现对其进行逆向分析,对往期代码进行重构。与此同时,K哥发现百度指数的某些接口有个 Cipher-Text 参数,与百度翻译的 Acs-Token 加密方式差不多,所以就一起分析一波。

逆向目标

  • 目标:百度翻译最新请求头参数 Acs-Token,百度指数请求头 Cipher-Text
  • 主页:fanyi.baidu.com/
  • 接口:fanyi.baidu.com/v2transapi
  • sign、token 参数的逆向方法本文不再赘述,想了解的可以阅读 K 哥往期百度翻译逆向的文章

逆向过程

抓包分析

先以百度翻译为例,随便输入文字,可以看到没有刷新页面,翻译结果就出来了,由此可以推断是 Ajax 加载的,打开开发者工具,选择 XHR 过滤 Ajax 请求,找到接口位置,详细分析推荐阅读 K 哥往期百度翻译逆向的文章,如下图可以看到在请求头中新增了一个 Acs-Token 参数,前面两串数字看起来像时间戳,具体加密方式需要我们来进一步分析:

这里使用 Fiddler 插件 hook 定位 Acs-Token 参数,相关 hook 操作方式可阅读 K 哥往期文章,本文不再赘述:

(function () {
    var org = window.XMLHttpRequest.prototype.setRequestHeader;
    window.XMLHttpRequest.prototype.setRequestHeader = function (key, value) {
        console.log(key, ':', value)
        if (key == 'Acs-Token') {
            debugger;
        }
        return org.apply(this, arguments);
    };
})();
复制代码

清除缓存,点击翻译,可以看到成功 hook 到 Acs-Token 参数,往下跟栈即可找到其值生成的位置:

逆向分析

向下跟栈分析,Acs-Token 参数的值在 translate.js 文件的第 187 行生成,由 sign 参数传递,sign 参数定义在第 180 行,在第 195 行打下断点调试,点击翻译后成功在断点处断下:

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

百度指数 Cipher-Text、百度翻译 Acs-Token 逆向分析 的相关文章

  • Java 中等效的并行扩展

    我在 Net 开发中使用并行扩展有一些经验 但我正在考虑在 Java 中做一些工作 这些工作将受益于易于使用的并行库 JVM 是否提供任何与并行扩展类似的工具 您应该熟悉java util concurrent http java sun
  • 在 Java 中连接和使用 Cassandra

    我已经阅读了一些关于 Cassandra 是什么以及它可以做什么的教程 但我的问题是如何在 Java 中与 Cassandra 交互 教程会很好 如果可能的话 有人可以告诉我是否应该使用 Thrift 还是 Hector 哪一个更好以及为什
  • Java Swing:从 JOptionPane 获取文本值

    我想创建一个用于 POS 系统的新窗口 用户输入的是客户拥有的金额 并且窗口必须显示兑换金额 我是新来的JOptionPane功能 我一直在使用JAVAFX并且它是不同的 这是我的代码 public static void main Str
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • ggplot2读书笔记12:第九章 数据分析

    本书的最后一个部分 Part III Data Analysis 主要包括三个章节 今天先来看第九章 Data Analysis 9 1 简介 在前面的学习中 我们使用的模拟数据集都是已经整理好的数据框 可以直接使用 但通常实际数据并不会这
  • 数组:一堆数放到一起

    数组相当于一堆数方到一起 那么查看数组元素循环是必不可少的 int newArray 1 2 3 名词 newArray 数组变量 1 2 3 数组对象 1 2 3 数组元素 声明数组 类型 数组名 例如 int array String
  • 打字练习经验总结

    最近18天每天都在进行打字练习 从盲打每分钟60kpm 正确率96 到现在的每分钟200kpm 正确率97 总结了一下我练习时的注意事项 分享给刚开始进行打字练习的同仁们 希望对你们有些许的帮助 一 盲打 一定要盲打 不要看键盘 开始会很难
  • python爬虫学习日记(2)--分析POST信息(MD5加密)

    这次依然是以xx大学的教务管理系统为例 因为之前我认为他的POST是很简单的 可是后来发现 他进行了加密 而且用其他的信息来加密另一个信息 所以我这次重新分析一遍 这里涉及到javascript 我都不会 但是通过百度都能查到 下面看我是怎
  • API接口设计:防参数篡改+防二次请求

    API接口由于需要供第三方服务调用 所以必须暴露到外网 并提供了具体请求地址和请求参数 为了防止被第别有用心之人获取到真实请求参数后再次发起请求获取信息 需要采取很多安全机制 1 首先 需要采用https方式对第三方提供接口 数据的加密传输
  • PPTP和L2TP哪种好?

    1 PPTP和L2TP是什么 PPTP 点对点隧道协议 英语 Point to Point Tunneling Protocol 缩写为PPTP 要求网络为IP网络 使用单一隧道 不支持提供包头压缩 隧道验证 L2TP 大致和PPTP协议类
  • python 常用简单代码

    交换两个变量 a 4 b 5 a b b a print a b gt gt 5 4 多个变量赋值 a b c 4 5 5 Hello print a b c gt gt 4 5 5 hello 将列表中的多个值分配给变量 a b c 1
  • qt tcp通信_Qt实例 TCP多线程收发

    TCP TCP简介 TCP IP 是供已连接因特网的计算机进行通信的通信协议 TCP IP 指传输控制协议 网际协议 Transmission Control Protocol Internet Protocol TCP IP 定义了电子设
  • 从 Elasticsearch 到 Apache Doris,10 倍性价比的新一代日志存储分析平台

    日志数据的处理与分析是最典型的大数据分析场景之一 过去业内以 Elasticsearch 和 Grafana Loki 为代表的两类架构难以同时兼顾高吞吐实时写入 低成本海量存储 实时文本检索的需求 Apache Doris 借鉴了信息检索
  • vue 项目引入高德地图,搜索提示与地理编码

    一 第一步 index html 引入
  • MySQL基础篇(05):逻辑架构图解和InnoDB存储引擎详解

    一 MySQL逻辑架构 1 逻辑架构图 基于下面的逻辑架构图 可以大致熟悉MySQL各个架构组件之间的协同工作关系 很经典的C S架构风格 即客户端 服务端模式 2 分层描述 客户端连接 通常会进行连接池管理 连接用户权限认证 安全管理等操
  • Android 休眠模式 [adb 模拟休眠]

    Android 休眠模式 做 Android 开发的时候 有时候需要测试手机处于休眠模式下的动作 一 App Standby 模式 打开终端 输入 adb devices gt 测试一下是否可以识别手机 进入休眠 App Standby模式
  • BUUCTF WEB [极客大挑战 2019]Knife

    BUUCTF WEB 极客大挑战 2019 Knife 根据提示直接使用蚁剑连接 在文件根目录中找到flag文件 获得flag flag b297ceda a835 48bb acf9 2a6c03f68d32
  • 6_索引库底层原理分析

    最初刚学习ElasticSearch的时候 为了便于理解 我们将其与我们所学习的MySQL数据进行了类别学习 但是ElasticSearch相对于MySQL数据库 更好的我们叫它为索引库 它分为两个过程 先是建立索引 再是检索 Elasti
  • linux ssh连接问题总结与解决方案

    Linux SSH连接问题总结与解决方案 SSH Secure Shell 是一种常用的远程连接协议 可以在不同的计算机之间建立加密的通信 通常用于管理员对服务器进行管理和维护 但是 在实际使用过程中 我们经常会遇到一些SSH连接问题 例如
  • R 语言实验

    R 语言实验过程记录 实验环境 Windows 10 Home RStudio Version 1 0 136 实验内容 模拟产生电商专业学生名单 学号区分 记录高数 英语 网站开发三科成绩 然后进行统计分析 假设有的100 名学生 起始学
  • python的迭代器和生成器

    1 迭代器 简介 迭代器对象可以在 for 循环中使用 如 x 2 4 6 for n in x print n 输出 2 4 6 其好处是不需要对下标进行迭代 但是有些情况下 我们既希望获得下标 也希望获得对应的值 那么可以将迭代器传给
  • Java 发版jar不直接显示日志

    发版jar不直接显示日志 这样做以防有人点击服务将服务暂停导致程序出现错误 java jar xxx jar gt log out 日志可以在log out文件查看 注意 不要将命令弹窗关闭
  • Spark大数据分与实践笔记(第七章 Spark Streaming实时计算框架-01)

    第七章 Spark Streaming实时计算框架 近年来 在Web应用 网络监控 传感监测 电信金融 生产制造等领域 增强了对数据实时处理的需求 而Spark中的Spark Streaming实时计算框架就是为了实现对数据实时处理的需求而
  • 百度指数 Cipher-Text、百度翻译 Acs-Token 逆向分析

    K 哥之前写过一篇关于百度翻译逆向的文章 也在 bilibili 上出过相应的视频 最近在 K 哥爬虫交流群中有群友提出 百度翻译新增了一个请求头参数 Acs Token 如果不携带该参数 直接按照以前的方法进行处理 会出现 1022 报错