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


    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 哥往期文章,本文不再赘述:

    1. (function () {
    2. var org = window.XMLHttpRequest.prototype.setRequestHeader;
    3. window.XMLHttpRequest.prototype.setRequestHeader = function (key, value) {
    4. console.log(key, ':', value)
    5. if (key == 'Acs-Token') {
    6. debugger;
    7. }
    8. return org.apply(this, arguments);
    9. };
    10. })();
    11. 复制代码

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

    逆向分析

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

  • 相关阅读:
    代谢网络模型学习笔记(序章)
    2022下半年教资已经开始注册,1分钟看懂证件照审核要求
    DE算法简介
    计算机毕业设计springboot健身俱乐部会籍管理系统cbz46源码+系统+程序+lw文档+部署
    条条大路通罗马-面试题(一)
    YOLOv7改进之二十三:引入SimAM无参数注意力
    Guava Cache使用
    Linux 基本语句_5_创建静态库|动态库
    C盘如何扩容
    【无标题】
  • 原文地址:https://blog.csdn.net/m0_72134256/article/details/126437674