某果的一个小参数分析

news/2024/12/28 17:47:03/
  1. 分析链接:aHR0cHM6Ly9hcHBsZWlkLmFwcGxlLmNvbS9hY2NvdW50

  2. 分析目标:X-Apple-I-Fd-Client-Info

1.在浏览器搜索关键词,打下断点

图片

我们再里面进行搜索,定位到这个位置,可以看到X-Apple-I-FD-Client-Info这个参数等于e,这个e等于ai.getBrowserData()这个函数,我们打下断点跟一下看看。下断点,刷新一下页面看看。

2.找到getBrowserData()函数

图片

跟踪到这个函数,可以看到创建了一个input元素,设置了一下这个input元素的一些属性。调用了一些window.dcHelper.setData函数,传入Za函数。后面获取了一下刚刚创建的input的值。

然后继续跟。

图片

大概代码放到这里。

window.dcHelper = new function() {this.setData = function(e) {var t;e: {if (null == (t = document.getElementById(e)))null != (n = document.getElementsByName(e)) && 0 < n.length && (t = n[0]);if (null == t)for (var n = 0, r = document.forms.length; n < r; n++)for (var a = 0, i = document.forms[n], o = i.elements.length; a < o; a++) {var s = i[a];if (s.name === e) {t = s;break e}}}null != t && (n = null,"undefined" != typeof appidmsparm && null !== appidmsparm && (appidmsparm.appidmsform(e),null !== t.value && (n = t.value)),t.value = this.getData(n))},this.getData = function(e) {var t, n = {};if (n.U = navigator.userAgent,n.L = window.navigator.language ? window.navigator.language : navigator.browserLanguage ? navigator.browserLanguage : "","number" != typeof (t = (new Date).getTimezoneOffset()) || null === t)t = "";else {var r = Math.abs(parseInt(t / 60, 10)), a = Math.abs(t % 60);t = "GMT" + (0 < t ? "-" : "+") + (10 > r ? "0" + r : r) + ":" + (10 > a ? "0" + a : a)}return n.Z = t,n.V = "1.1",null != e && (n.F = e),JSON.stringify(n)}}}).call(window)
3.补环境

之后就是使用补环境了,断点,扣代码。这里使用jsdom来补环境,灰常的方便!补环境的话,比较简单,差啥补啥。

这里给出结果。

图片

这里大家可以去尝试补补看,当成一个练习。


http://www.ppmy.cn/news/1143738.html

相关文章

FreeRTOS自我救赎2之基本工程建立

System Core 1.System Core >SYS 2.System Core >RCC 3.System Core >NVIC Middleware Middleware >FREERTOS Clock configuration Project Manager 在编译生成的代码前需要找一个与芯片对应的启动文件&#xff0c;启动文件添加进来&#xff0c;编译就没问题了

Sql和NoSql

Sql和NoSql SQL使用&#xff1a;如果有大量的更新操作&#xff0c;一定要使用事务&#xff0c;效率高。大数据情况下&#xff0c;要对表字段建索引。比nosql好的地方&#xff1a;有事务&#xff0c;能回滚。 SQL遇到的瓶颈&#xff1a;水平扩展 场景&#xff1a;不同设备&am…

LVGL8.3.6 Flex(弹性布局)

使用lv_obj_set_flex_flow(obj, flex_flow)函数 横向拖动 LV_FLEX_FLOW_ROW 将子元素排成一排而不包裹 LV_FLEX_FLOW_ROW_WRAP 将孩子排成一排并包裹起来 LV_FLEX_FLOW_ROW_REVERSE 将子元素排成一行而不换行&#xff0c;但顺序相反 LV_FLEX_FLOW_ROW_WRAP_REVERSE 将子元素…

修炼k8s+flink+hdfs+dlink(三:安装dlink)

一&#xff1a;mysql初始化。 mysql -uroot -p123456 create database dinky; grant all privileges on dinky.* to dinky% identified by dinky with grant option; flush privileges;二&#xff1a;上传dinky。 上传至目录/opt/app/dlink tar -zxvf dlink-release-0.7.4.t…

Pytorch-学习记录-1-Tensor

1. 张量 (Tensor): 数学中指的是多维数组&#xff1b; torch.Tensor data: 被封装的 Tensor dtype: 张量的数据类型 shape: 张量的形状 device: 张量所在的设备&#xff0c;GPU/CPU requires_grad: 指示是否需要计算梯度 grad: data 的梯度 grad_fn: 创建 Tensor 的 Functio…

跨平台应用开发比较,QT还是Electron

开发技术比较 在技术选择中&#xff0c;我们选中了两个技术路线&#xff0c;一个是基于C的QT&#xff0c;一个是基于nodejs的electron&#xff0c;我们仔细比价了两个产品的优缺点。 electronQT开发简单&#xff0c;上手快速上手慢&#xff0c;但是性能高适用于一些单一功能的…

[Android] Input事件分发流程之InputDispatcher(3)

InputDispatcher线程 先看看notifyMotion方法&#xff0c;因为是从InputReader中传递过来的&#xff0c;并携带了NotifyMotionArgs实体 void InputDispatcher::notifyMotion(const NotifyMotionArgs* args) {...// 日志输出ALOGD("notifyMotion - id%" PRIx32 &quo…

spring 事物源码阅读之传播特性实现

Spring事务传播特性是指在多个事务操作之间如何管理事务的行为。Spring框架提供了不同的事务传播特性&#xff0c;用于定义事务的边界和隔离级别。先来回顾下spring事务传播有哪些类型 传播类型 PROPAGATION_REQUIRED&#xff08;默认&#xff09;&#xff1a;如果当前存在事…