JS逆向_腾讯点选_VMP补环境

news2025/3/20 6:20:43

1.接口分析

1.cap_union_prehandle
说明:图片、jsvmp
GET
QueryString:{
	aid: xxxxxx //网站在腾讯登记的id
	protocol: https
	accver: 1
	showtype: popup
	ua:  //ua atob后的结果
	noheader: 1
	fb: 1
	aged: 0
	enableAged: 0
	enableDarkMode: 0
	grayscale: 1
	clientype: 2
	cap_cd: 
	uid: 
	lang: zh-cn
	entry_url: ""//网站url
	elder_captcha: 0
	js:  //js文件
	login_appid: 
	wb: 1
	subsid: 1
	callback: _aq_185202
	sess: 
}
响应:{
  "state": 1,
  "ticket": "",
  "capclass": "1",
  "subcapclass": "1408",
  "src_1": "cap_union_new_show",
  "src_2": "template/new_placeholder.html",
  "src_3": "template/new_slide_placeholder.html",
  "sess": "", //最后验证接口会使用
  "randstr": "",
  "sid": "",
  "log_js": "",
  "data": {
    "comm_captcha_cfg": {
      "tdc_path": "",//VMP文件
      "feedback_url": "",
      "pow_cfg": {
        "prefix": "a5d78a98bc3cd0e1#", //最后验证接口会使用
        "md5": "de4c8e266d55500fb9357dad59b9f06a" //最后验证接口会使用
      }
    },
    "dyn_show_info": {
      "lang": "zh-cn",
      "instruction": "请依次点击:",
      "bg_elem_cfg": {
        "size_2d": [
          672,
          480
        ],
        "click_cfg": {
          "mark_style": "inc_number",
          "data_type": [
            "DynAnswerType_POS"
          ]
        },
        "img_url": "" //点选图片
      },
      "sprite_url": "", //提示图片
      "verify_trigger_cfg": {
        "verify_icon": true
      },
      "color_scheme": "#0057d4",
      "ins_elem_cfg": [
        {
          "id": 1,
          "sprite_pos": [
            0,
            0
          ],
          "size_2d": [
            170,
            50
          ]
        }
      ]
    }
  },
  "uip": "36.26.211.203"
}
2./tdc.js?app_data=7308091291537305600&t=1228349970
GET
说明:VMP文件

3./cap_union_new_verify
说明:验证接口
POST
表单数据:{
	collect: "",//vmp(上一个包的tdc_path这个值就是vmp文件)的window.TDC.setData({'ft': '6X_7Pb__H'}); window.TDC.getData(true)
	tlg: 1720 //collect的长度
	eks: "" //window.TDC.getInfo().info
	sess: "" //上一个包返回的sess
	ans: [{"elem_id":1,"type":"DynAnswerType_POS","data":"600,434"},{"elem_id":2,"type":"DynAnswerType_POS","data":"119,38"},{"elem_id":3,"type":"DynAnswerType_POS","data":"442,41"}] //data为点选位置
	pow_answer: 1f88165cc0c86fe0#85909 //tgJCap.42d74f87.js webpack中有一段代码让work执行,window.e(1).getWorkloadResult({target:md5,nonce:prefix})就会返回这两个参数的值
	pow_calc_time: 230
}
成功的响应
{
    "errorCode": "0",
    "randstr": "@m2X",
    "ticket": "tr03SIZEMmLbZmwlz2uMANULUX5h9wcWQMK15MItXHsLjXJpBonQZBCf1ulsqZy1v97m_S-QyBPI26tbe9P_2UDs_ult6_i0U47VinuggfH08WhKfRWJpJhHQg**",
    "traceId": "",
    "errMessage": "",
    "sess": ""
}

2.调试思路

hook window.TDC.setData、window.TDC.getData
补环境就上代理Proxy
插桩位置就两个apply
生成一个数组:
{"cd":[1953007650,1200,0,0,735,1742384971,"Google Inc. (NVIDIA)",1,"GgoAAAANSUhEUgAAASwAAACW","top",1,1920,0,"1920-1200-1160-24-*-*-|-*","",0,"unknown","http://222.132.55.178:8190/newgoods/listPageGoodOrderSocietyDetail?rand=1519713624347",[],0,24,"UTF-8",[360,407],1742384968,"Win32",["zh-CN","zh"],24,               
还有一个10位的数组,http应该1011011111 ,https 1111111111,这10位数组就是环境检测的结果大量的dom操作等

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.检测点

supports、Canvas、createElement、异常栈检测、getElementById、getItem、appendChild、getComputedStyle、removeChild、remove、style、ifWindow、body、screen 、navigator、insertBefore、outerHTML、cloneNode 、setAttribute、innerHTML 、addEventListener、setInterval、clearInterval、RTCPeerConnection、localStorage、sessionStorage.....
大概这么多吧,可能有漏下的环境很多

4.效果展示

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2318201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL数据库】多表查询(笛卡尔积现象,联合查询、内连接、左外连接、右外连接、子查询)-通过练习快速掌握法

在DQL的基础查询中,我们已经学过了多表查询的一种:联合查询(union)。本文我们将系统的讲解多表查询。 笛卡尔积现象 首先,我们想要查询emp表和stu表两个表,按照我们之前的知识栈,我们直接使用…

DAPO-Decoupled Clip and Dynamic sAmpling Policy Optimization

论文地址:https://dapo-sia.github.io/static/pdf/dapo_paper.pdf 代码地址:https://github.com/volcengine/verl/tree/gm-tyx/puffin/main/recipe/dapo 数据:https://huggingface.co/datasets/BytedTsinghua-SIA/DAPO-Math-17k 1. 背景与动机…

数组模拟邻接表 #图论

文章目录 为什么要用数组来模拟邻接表存储思路遍历思路 树是特殊的图,因此邻接表可以存储图和树两种数据结构。 为什么要用数组来模拟邻接表 在算法设计当中,利用数组来代替结构体模拟各种数据结构会更加简单。 存储思路 给定如下数据,我们可以构造如…

VBA常见的知识都有哪些,让AI编写的VBA经常 报错,所以VBA的基础还是要学习的

掌握这些能够大大的提高VBA的编写效率,欢迎来到涛涛聊AI。 1. 异常处理 Cleanup:是VBScript的错误处理标签,用于标记程序执行失败或退出时需要执行的清理操作(如关闭文件、释放对象)。这段代码会在遇到错误或用户取消操作时跳转…

DeepSeek(8):结合Kimi-PPT助手一键生成演示报告

1 生成内容 在Deepseek中生成内容: 帮我创建年度计划,描述《智能枕头》产品的如何在全国销售,计划切分到每个月。从而让我们的老板和团队对报告充满信息。输出的内容我需要放到ppt中进行展示。 使用Deepseek R1模型,如下&#x…

【MySQL】MySQL如何存储元数据?

目录 1.数据字典的作用 2. MySQL 8.0 之前的数据字典 3. MySQL 8.0 及之后的数据字典 4.MySQL 8 中的事务数据字典的特征 5.数据字典的序列化 6. .sdi文件的作用: 7..sdi的存储方式 在 MySQL 中,元数据(Metadata) 是描述数…

用ASCII字符转化图片

代码 from PIL import Image# 定义 ASCII 字符集,从最暗到最亮 ASCII_CHARS "%#*-:. "def resize_image(image, new_width100):width, height image.sizeratio height / widthnew_height int(new_width * ratio)resized_image image.resize((new_wi…

蓝桥与力扣刷题(蓝桥 组队)

题目:作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容。 每位球员担任 1号位至 5号位时的评分如下表所示。请你计算首发阵容 1 号位至 5 号位的评分之和最大可能是多少? 本题为填空题&…

AI Agent系列(六) -基于ReAct架构搭建LLM Agent(Deepseek)

AI Agent系列【六】 一、 ReAct1.1 ReAct 的处理过程:1.1 代码结构 二、 Python代码实现2.1 通过Zero-shot 实现python代码实例Python代码示例1:python代码实现示例2 一、 ReAct ReAct 是 Reseaning 和 Action 两个词的前缀合成,代表着先推…

AnyTouch:跨多个视觉触觉传感器学习统一的静态动态表征

25年3月来自人大、武汉科技大学和北邮的论文“AnyTouch: Learning Unified Static-dynamic Representation Across Multiple Visuo-tactile Sensors”。 视觉触觉传感器旨在模拟人类的触觉感知,使机器人能够精确地理解和操纵物体。随着时间的推移,许多精…

YOLOv11 目标检测

本文章不再赘述anaconda的下载以及虚拟环境的配置,博主使用的python版本为3.8 1.获取YOLOv11的源工程文件 链接:GitHub - ultralytics/ultralytics: Ultralytics YOLO11 🚀 直接下载解压 2.需要自己准备的文件 文件结构如下:红…

VSCode C/C++ 环境搭建指南

一、前言 Visual Studio Code(简称 VSCode)是一款轻量级且功能强大的跨平台代码编辑器,凭借丰富的插件生态和高度的可定制性,深受开发者喜爱。对于 C/C 开发者而言,在 VSCode 中搭建开发环境,能够获得灵活…

Python 中下划线 “_” 的多面性:从变量到约定

# Python中下划线“_”的多面性:从变量到约定 在Python的语法体系里,下划线“_”看似毫不起眼,实则扮演着极为重要且多样化的角色。它不仅能作为普通变量参与编程,更在多个特殊场景下有着独特的用途与约定。深入理解下划线的各种…

Vue3项目开发:状态管理实践指南

# Vue3项目开发:状态管理实践指南 一、引言 背景介绍 在Vue项目中,状态管理是一个非常重要的话题。合理的状态管理能够帮助我们更好地组织和管理数据,提升项目的可维护性和可扩展性。本文将深入探讨Vue3项目中状态管理的最佳实践,…

数据结构-------栈

顺序栈: 一、数据结构定义 数据元素 DATATYPE typedef struct person {char name[32];char sex;int age;int score; } DATATYPE;顺序栈结构 SeqStack typedef struct list {DATATYPE *head; // 栈空间首地址int tlen; // 栈总容量(total leng…

机器学习概要

文章目录 一、什么是机器学习 二、机器学习的种类 1. 有监督学习 2. 无监督学习 3.强化学习 三、机器学习的应用 四、机器学习的步骤 1. 数据的重要性 2. 数据和学习的种类 3. 可视化 一、什么是机器学习 机器学习指的是计算机根据给定的问题、课题或环境进行学习&a…

【LangChain入门 2 Model组件】开始!LLM Models简单对话

文章目录 一、使用langchain_ollama二、采用DeepSeek的API三、Model 介绍3.1 OllamaLLM 预训练模型3.2 ChatOllama 聊天预训练模型3.3 OllamaEmbeddings 实现一个helloworld,跑通一个简单的对话。 后面章节会正式介绍LangChain的各个功能。 后台llm的端口可以任意选…

C++20 中线程管理与取消机制的深度剖析

文章目录 std::jthread:更智能的线程管理背景与优势构造函数与 std::stop_token 的集成 std::stop_token、std::stop_source 和 std::stop_callback:灵活的取消机制std::stop_token:取消请求的指示器std::stop_source:取消请求的发…

Vue3 核心特性解析:Suspense 与 Teleport 原理深度剖析

Vue3 核心特性解析:Suspense 与 Teleport 原理深度剖析 一、Teleport:突破组件层级的时空传送 1.1 实现原理图解 #mermaid-svg-75dTmiektg1XNS13 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-s…

FPGA——实现LED流水灯

文章目录 一、Quartusll_18.1和VS Code软件的关联二、DE2-115的时钟电路三、流水灯的分层次设计四、总结 一、Quartusll_18.1和VS Code软件的关联 1.先打开Quartus II 软件,然后选择菜单栏“Tools”下的“Options…”。 2.点击“Options…”,在弹出的对…