cookie反爬----普通服务器,阿里系
目录
普通:
1. 简介
2. 加密原理
二.实战案例
1. 逆向目标
2. 逆向分析
1. 逆向目标
2. 逆向分析
实战:
无限debugger原理
1. Function("debugger").call()
2. XXX.constructor("debugger").call("action")
3. (function(){return !![];})["constructor"]("debugger")["call"]("action")
总结
如何过
通杀代码:
一.常见COOKIE反爬
普通:
1. 简介
-
Cookie 反爬虫指的是服务器端通过校验请求头中的 Cookie 值来区分正常用户和爬虫程序的手段,这种
手段被广泛应用在 Web 应用中。
-
2. 加密原理
-
cookie加密分为大致两种方式
-
浏览器向服务器发送请求,服务器在响应头带上响应cookie,下次请求的时候需要再带上cookie去进行请求
-
浏览器向服务器发送请求,服务器返回的是一段js代码,浏览器需要解析js代码,在通过js代码在生成cookie信息
-
二.实战案例
1. 服务器响应cookie信息
-
学习响应cookie和session的处理
-
学习基于首页返回的cookie值
1. 逆向目标
-
地址:互动交流 - 麻章区政府网站
-
接口:http://www.zjmazhang.gov.cn/hdjlpt/letter/pubList
-
对抗: cookie 反爬虫处理
2. 逆向分析
-
可以先测试当前网站的接口,可以发现,当前的接口需要一个cookie值,一个token值
确定为cookie反爬,第一步先清除cookie
-
-
重新请求
-
发现published中的
-
_csrf为
publist中的X_Csrf-Token
先请求published这个接口
-
发现publist中的cookie也是这个里面带出来的
-
那我们首先请求published,再请求publist即可
-
import requests import redef get_cookie():url = 'http://www.zjmazhang.gov.cn/hdjlpt/published?via=pc'headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'}res = requests.get(url, headers=headers)csrf = re.findall("var _CSRF = '(.*?)';", res.text)[0]# print(res.cookies)cookie = res.cookies.get('szxx_session')return csrf, cookiecsrf, cookie = get_cookie() url = 'http://www.zjmazhang.gov.cn/hdjlpt/letter/pubList' headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36','X-Csrf-Token': csrf }cookies = {'szxx_session': cookie} data = {"offset": "0","limit": "20","site_id": "759010","time_from": "1669564800","time_to": "1701014399" } res = requests.post(url, headers=headers, cookies=cookies, data=data)print(res.text)
2. 阿里系cookie逆向
-
阿里系cookie请求两次 第一次会得到一个响应的cookie 会返回一个js代码 通过js代码会生成一个新的cookie第二次请求需要拿到两次生成的cookie才能访问自动的断点
-
学习JS设置的cookie处理
-
学习轻度JS混淆处理
1. 逆向目标
-
首页:aHR0cHM6Ly90YW5nLmNkdC1lYy5jb20vbm90aWNlL21vcmVDb250cm9sbGVyL3RvTW9yZT9nbG9ibGVUeXBlPTA=
-
目标:cookie: acw_sc__v2
2. 逆向分析
-
逆向cookie时需要先清空cookie,让网页重新生成
-
阿里系的cookie在重新刷新之后,会进入到debugger模式
-
过无限debugger
Function.prototype.__constructor_back = Function.prototype.constructor; Function.prototype.constructor = function() {if(arguments && typeof arguments[0]==='string'){if("debugger" === arguments[0]){return}}return Function.prototype.__constructor_back.apply(this,arguments); }
-
可以直接通过调试断点的方式,找到加密的位置
实战:
-
-
发现他是getlist这个请求,加密参数是要带上cookie的acw_sc_v2
-
-
我们先把这个cookie去掉,重发请求
-
-
-
如我们所料,发了两个包,第一个是js代码,第二个是正常的包
-
-
下面我们下script断点:
断到这个地方了,继续执行接下来断到
-
继续执行会到无限debugger里面去
-
-
进去,看是如何调用的
-
发现debugger是这样的
-
无限debugger原理
-
下面是基本原理:
-
这些代码示例利用了JavaScript中的
Function
构造函数和对象的constructor
属性来动态执行字符串形式的代码。这些方法通常用于执行任意代码,但也可以用于注入和执行恶意代码。下面我将解释每个示例的原理,并提供一些例子。1.
Function("debugger").call()
这个示例使用
Function
构造函数来创建一个新的函数,该函数包含一个debugger
语句。然后使用call
方法执行这个新函数。// 创建并执行一个包含debugger的函数 Function("debugger").call();
这行代码会立即执行
debugger
,导致浏览器在调试模式下暂停执行。2.
XXX.constructor("debugger").call("action")
这个示例首先获取某个对象
XXX
的constructor
属性,这是一个指向创建该对象的构造函数的引用。然后,它使用这个构造函数来创建一个新的函数,该函数包含一个debugger
语句,并尝试用call
方法执行这个新函数。// 假设有一个对象obj const obj = {};// 使用obj的constructor(即Object)来创建并执行一个包含debugger的函数 obj.constructor("debugger").call();
这行代码同样会执行
debugger
,导致浏览器在调试模式下暂停执行。3.
(function(){return !![];})["constructor"]("debugger")["call"]("action")
这个示例稍微复杂一些。它首先创建一个立即执行函数表达式(IIFE),该函数返回一个布尔值。然后,它获取这个函数的
constructor
属性,这是一个指向Function
构造函数的引用。接着,它使用这个构造函数来创建一个新的函数,该函数包含一个debugger
语句。最后,它使用call
方法执行这个新函数。// 创建一个IIFE,返回一个布尔值 const boolFunc = (function() {return !![]; })();// 使用boolFunc的constructor(即Function)来创建并执行一个包含debugger的函数 boolFunc.constructor("debugger").call();
这行代码也会执行
debugger
,导致浏览器在调试模式下暂停执行。总结
这些示例展示了如何使用
Function
构造函数和对象的constructor
属性来动态执行代码。这些技术可以用于测试、调试或执行动态代码,但也可能被用于恶意目的,如代码注入和执行恶意代码。因此,在使用这些技术时需要谨慎,并确保代码的安全性。
这段代码是一个混淆过的JavaScript代码片段,它使用了多种技巧来隐藏其真实意图。让我们逐步分析这段代码:
(function() {}
:这是一个空的立即执行函数表达式(IIFE)。
['\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72']
:这是一个数组,其中包含一个字符串,该字符串是"constructor"
的十六进制编码。
(undefined + '')[0x2]
:这是一个技巧,用于获取字符串"undefined"
的第三个字符,即d
。
(!![] + '')[0x3]
:这是一个技巧,用于获取字符串"true"
的第四个字符,即e
。
([][_0x55f3('0x1f', '\x4c\x24\x28\x44')]() + '')[0x2]
:这部分代码看起来是调用了一个名为_0x55f3
的函数(可能是一个混淆后的函数名),并传递了两个参数。这个函数可能返回一个方法名,然后调用该方法,并将其结果与空字符串拼接,最后取第二个字符。由于_0x55f3
函数的具体实现未知,我们无法确定这部分代码的确切行为。
(![] + [0x0] + String)[0x14]
:这是一个技巧,用于获取字符串"false"
的第十五個字符,即s
。
(!![] + '')[0x3]
:这是一个技巧,用于获取字符串"true"
的第四个字符,即e
。
(!![] + '')[0x1]
:这是一个技巧,用于获取字符串"true"
的第二个字符,即r
。将这些部分组合起来,这段代码实际上是在构造一个字符串,该字符串通过连接上述字符来形成
"constructor"
。然后,它使用这个字符串作为键来访问当前上下文中的一个对象的constructor
属性。
如何过
我们可以这么过:
Function.prototype.__constructor_back = Function.prototype.constructor;
Function.prototype.constructor = function() {if(arguments && typeof arguments[0]==='string'){if("debugger" === arguments[0]){return}}return Function.prototype.__constructor_back.apply(this,arguments);
}
过了这个进入我们之前打的断点
看上一层堆栈,发现是由settimeout执行函数,加密位置在arg2,arg2加密也在上面
开始扣代码
var _0x23a392 = arg1[_0x55f3('0x19', '\x50\x67\x35\x34')]();arg2 = _0x23a392[_0x55f3('0x1b', '\x7a\x35\x4f\x26')](_0x5e8b26);
扣的过程中随时替换
arg1是变化的
扣完的成品:
通杀代码:
https://articles.zsxq.com/id_bblrs5mvwdit.html,见知识星球
包装成一个方法后,在python先把加密参数删除掉,请求第一次,用re提取arg1形成加密参数,请求第二次
完结。
相关文章:
cookie反爬----普通服务器,阿里系
目录 一.常见COOKIE反爬 普通: 1. 简介 2. 加密原理 二.实战案例 1. 服务器响应cookie信息 1. 逆向目标 2. 逆向分析 2. 阿里系cookie逆向 1. 逆向目标 2. 逆向分析 实战: 无限debugger原理 1. Function("debugger").call() 2. …...
【计算机网络】计算机网络概述
当我们决定要谈谈网络的时候,我想在谈之前,有必要了解一下“协议”这个词。协议,定义了在俩个或者多个通信实体之间交换报文的格式和次序,以及报文发送、接收报文或者其他的事件所采取的动作。定义都比较晦涩,那就让我…...
微信小程序条件渲染与列表渲染的全面教程
微信小程序条件渲染与列表渲染的全面教程 引言 在微信小程序的开发中,条件渲染和列表渲染是构建动态用户界面的重要技术。通过条件渲染,我们可以根据不同的状态展示不同的内容,而列表渲染则使得我们能够高效地展示一组数据。本文将详细讲解这两种渲染方式的用法,结合实例…...
MySQL--存储引擎
目录 1 MySQL体系结构 2 存储引擎简介 3 存储引擎特点 3.1 InnoDB 3.1.1 介绍 3.1.2 特点 3.1.3 文件 3.2 逻辑存储结构 3.3 MyISAM 3.3.1 介绍 3.3.2 特点 3.3.3 文件 3.4 Memory 3.3.1 介绍 3.3.2 特点 3.3.3 文件 4 存储引擎选择 Innodb MyISAM MEMORY …...
洛谷 B2038:奇偶 ASCII 值判断
【题目来源】https://www.luogu.com.cn/problem/B2038http://shnoip.openjudge.cn/level1/39/【题目描述】 任意输入一个字符,判断其 ASCII 是否是奇数,若是,输出 YES,否则,输出 NO。 例如,字符 A 的 ASCII…...
软件测试面试之常规问题
1.描述一下测试过程 类似题目:测试的生命周期 思路:这是一个“范围”很大的题目,而且回答时间一般在3分钟之内,不可能非常详细的描述整个过程,因此答题的思路要从整体结构入手,不要过细。为了保证答案的准确性,可以引…...
Android 天气APP(三十七)新版AS编译、更新镜像源、仓库源、修复部分BUG
上一篇:Android 天气APP(三十六)运行到本地AS、更新项目版本依赖、去掉ButterKnife 新版AS编译、更新镜像源、仓库源、修复部分BUG 前言正文一、更新镜像源① 腾讯源③ 阿里源 二、更新仓库源三、修复城市重名BUG四、地图加载问题五、源码 前…...
网络性能及IO性能测试工具
文章目录 简介IO性能pidstatiostatfioblktrace 网络性能ipeftrek 简介 网络性能和IO性能测试工具在现代计算环境中至关重要。无论是评估网络带宽、优化数据传输速度,还是检测磁盘读写性能,选择适合的工具至关重要。本文将介绍各种网络性能和IO性能测试工…...
1+X应急响应(网络)常见网络攻击-SQL注入:
常见网络攻击-SQL注入: SQL注入概述: 动态网站的工作流程: SQL注入的起源: SQL典型的攻击手段: SQL注入的危害: SQL注入的函数: SQL注入类型: 提交方式分类: Get注入&am…...
流式上传与分片上传的原理与实现
🚀 博主介绍:大家好,我是无休居士!一枚任职于一线Top3互联网大厂的Java开发工程师! 🚀 🌟 在这里,你将找到通往Java技术大门的钥匙。作为一个爱敲代码技术人,我不仅热衷…...
基于深度学习CNN算法的花卉分类识别系统01--带数据集-pyqt5UI界面-全套源码
文章目录 基于深度学习算法的花卉分类识别系统一、项目摘要二、项目运行效果三、项目文件介绍四、项目环境配置1、项目环境库2、环境配置视频教程 五、项目系统架构六、项目构建流程1、数据集2、算法网络Mobilenet3、网络模型训练4、训练好的模型预测5、UI界面设计-pyqt56、项目…...
【数电】常见组合逻辑电路设计和分析
1.基于数据选择器设计 1.1卡诺图降维 1.2实例分析 1.2.1例题一 1.2.2例题二 1.2.2例题三 2.基于译码器设计 3.参考资料 1.《数字电子技术基础 第六版》 阎石王红 2.卡诺图的降维_哔哩哔哩_bilibili...
攻防世界-web ics-06 [解法思路]
进入环境 点击左边的列表只有报表中心有反应 注意看url直接就是index.php?id1 我先试了sqlmap不行,然后就沉淀了一下 想到了id后面的参数问题,我谁便改了几个数都没反应 就想着用bp抓包爆一下这个参数,用了一个数字10000的字典 发现2333…...
传智杯 3-初赛:终端
题目描述: 有一天您厌烦了电脑上又丑又没用的终端,打算自己实现一个 Terminal。具体来说,它需要支持如下命令: 1. touch filename:如果名为 filename 的文件不存在,就创建一个这样的文件,如果已经存在同名…...
《数据结构》学习系列——图(中)
系列文章目录 目录 图的遍历深度优先遍历递归算法堆栈算法 广度优先搜索 拓扑排序定义定理算法思想伪代码 关键路径基本概念关键活动有关量数学公式伪代码时间复杂性 图的遍历 从给定连通图的某一顶点出发,沿着一些边访问遍图中所有的顶点,且使每个顶点…...
网络安全,文明上网(2)加强网络安全意识
前言 在当今这个数据驱动的时代,对网络安全保持高度警觉已经成为每个人的基本要求。 网络安全意识:信息时代的必备防御 网络已经成为我们生活中不可或缺的一部分,信息技术的快速进步使得我们对网络的依赖性日益增强。然而,网络安全…...
Laravel对接SLS日志服务
Laravel对接SLS日志服务(写入和读取) 1、下载阿里云的sdk #通过composer下载 composer require alibabacloud/aliyun-log-php-sdk#对应的git仓库 https://github.com/aliyun/aliyun-log-php-sdk2、创建sdk请求的service <?phpnamespace App\Ser…...
Kafka 工作流程解析:从 Broker 工作原理、节点的服役、退役、副本的生成到数据存储与读写优化
Kafka:分布式消息系统的核心原理与安装部署-CSDN博客 自定义 Kafka 脚本 kf-use.sh 的解析与功能与应用示例-CSDN博客 Kafka 生产者全面解析:从基础原理到高级实践-CSDN博客 Kafka 生产者优化与数据处理经验-CSDN博客 Kafka 工作流程解析:…...
基于 Flink 的车辆超速监测与数据存储的小实战
基于 Flink 的车辆超速监测与数据存储的小实战 一、实战背景与目标 在智能交通管理领域,实时监控车辆行驶速度并精准识别超速行为对于保障道路交通安全和维护交通秩序具有至关重要的意义。本项目旨在构建一个高效的数据处理系统,能够从 Kafka 的 topic…...
Shell 脚本基础(7):重定向详解
内容预览 ≧∀≦ゞ Shell 脚本基础(7):重定向详解声明1. 重定向基础概念1.1 输出重定向(> 和 >>)覆盖写入(>)追加写入(>>)输出到终端和文件࿰…...
04. 流程控制
一、流程控制 流程控制就是用来控制程序运行中各语句执行顺序的语句。基本的流程结构为:顺序结构,分支结构(或称选择结构),循环结构。 顺序结构:程序自上到下执行,中间没有任何判断和跳转&…...
基于卡尔曼滤波器的 PID 控制
基于卡尔曼滤波器的PID控制算法结合了经典控制理论和现代信号处理技术。卡尔曼滤波器(Kalman Filter, KF)可以对噪声数据进行平滑处理,从而改善PID控制器的性能,特别是在处理具有噪声和不确定性的系统时。以下是详细的设计过程&am…...
基于信创环境的信息化系统运行监控及运维需求及策略
随着信息技术的快速发展和国家对信息安全的日益重视,信创环境(信息技术应用创新环境)的建设已成为行业发展的重要趋势。本指南旨在为运维团队在基于信创环境的系统建设及运维过程中提供参考,确保项目顺利实施并满足各项技术指标和…...
leetCode 283.移动零
题目 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: nums [0] 输出:…...
Kali Linux语言设置成中文
要将Kali Linux设置成中国地区(简体中文),可以按照以下步骤进行操作: 一、更新软件包列表 打开Kali Linux的终端。 输入以下命令来更新软件包列表: sudo apt-get update 二、安装语言包(如果有就不用安装了…...
c#窗体列表框(combobox)应用——省市区列表选择实例
效果如下: designer.cs代码如下: using System.Collections.Generic;namespace 删除 {public partial class 省市区选择{private Dictionary<string, List<string>> provinceCityDictionary;private Dictionary<string,List<string&…...
kali中信息收集的一些常用工具
这里只是代表个人所见,所以肯定会有其他的没提到,希望大家体谅 前言 信息收集分为主动和被动的 主动就是通过自己的机器去和对方比如通信后获得的数据 被动是指不是在自己这里获取的,可以是第三方平台获取到的,与目标没有通信 …...
【CS61A 2024秋】Python入门课,全过程记录P2(Week3开始,更新中2024/11/24)
文章目录 关于基本介绍👋Week 3Mon Environments阅读材料Lab 02: Higher-Order Functions, Lambda ExpressionsQ1: WWPD: The Truth Will PrevailQ2: WWPD: Higher-Order FunctionsQ3: WWPD: Lambda 关于 个人博客,里面偶尔更新,最近比较忙。…...
python学习笔记(8)算法(1)数组
一、数组 数组是存储于一个连续空间且具有相同数据类型的元素集合。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号…...
C++(进阶) 第1章 继承
C(进阶) 第1章 继承 文章目录 前言一、继承1.什么是继承2.继承的使用 二、继承方式1.private成员变量的(3种继承方式)继承2. private继承方式3.继承基类成员访问⽅式的变化 三、基类和派生类间的转换1.切片 四、 继承中的作⽤域1.隐藏规则&am…...
【Linux | 计网】TCP协议详解:从定义到连接管理机制
目录 1.TCP协议的定义: 2.TCP 协议段格式 3.TCP两种通信方式 4.确认应答(ACK)机制 解决“后发先至”问题 5.超时重传机制 那么, 超时的时间如何确定? 6.连接管理机制: 6.1.三次握手: 为什么需要3次握手,一次两次不行吗…...
SElinux学习
一、SElinux简介 SELinux是Security-Enhanced Linux的缩写,意思是安全强化的linux,传统的访问控制在我们开启权限后,系统进程可以直接访问.当我们对权限设置不严谨时,这种访问方式就是系统的安全漏洞。 所以在开启SElinux后 会…...
Spark核心组件解析:Executor、RDD与缓存优化
Spark核心组件解析:Executor、RDD与缓存优化 Spark Executor Executor 是 Spark 中用于执行任务(task)的执行单元,运行在 worker 上,但并不等同于 worker。实际上,Executor 是一组计算资源(如…...
阿里云cdn配置记录和nodejs手动安装
cdn 登录阿里云 域名解析权限 开启cdn,接引导流程, 源可以设置 域名或者ip等 配置好域名解析 上传https证书 图片不显示,后端开发需要配置 回源配置的回源协议 ,配置跟随客服端【如果浏览器多次重定向错误,客服或者改…...
【实战】基于urllib和BeautifulSoup爬取jsp网站的数据
文章目录 前言目标网站分析目标网页爬取数据解析导出数据其他问题处理分页检索及多关键字搜索去重cookie问题工具封装经验总结前言 网络数据爬取大致分为两类: 静态爬取:该种方式针对那种架构比较老的网站,使用模版方式,通过浏览器F12只能找到静态页面,找不到返回json数…...
cpp-httplib 框架
cpp-httplib 概述 主要特点 单文件库:cpp-httplib 是一个单文件头文件库,易于集成到现有项目中。你只需将 httplib.h 包含到项目中即可开始使用支持 HTTP 客户端和服务器:它不仅支持作为 HTTP 客户端发送请求,也支持构建 HTTP 服…...
GEE 案例——TVDI(Temperature Vegetation Dryness Index)指数
目录 简介 方法论 代码解释 函数 案例代码 单景影像的TVDI 影像集合批量计算TVDI 引用 结果 简介 本文中代码包含两个可用于计算 TVDI 的主要函数。其中一个函数用于仅根据一幅 NDVI 和一幅 LST 图像生成 TVDI(singleTVDI),另一个函数用于为多幅 NDVI 和多幅 LST …...
Java语言程序设计 选填题知识点总结
第一章 javac.exe是JDK提供的编译器public static void main (String args[])是Java应用程序主类中正确的main方法Java源文件是由若干个书写形式互相独立的类组成的Java语言的名字是印度尼西亚一个盛产咖啡的岛名Java源文件中可以有一个或多个类Java源文件的扩展名是.java如果…...
基于Springboot+Vue社区养老服务管理系统(源码+lw+讲解部署+PPT)
前言 详细视频演示 论文参考 系统介绍 系统概述 核心功能 用户角色与功能 具体实现截图 1. 服务信息查看功能 主要代码实现 截图: 2. 服务申请功能 主要代码实现 截图: 3. 公告信息查看功能 主要代码实现 截图: 4. 服务信息…...
Linux基本指令的使用
当然可以!以下是一些常用的Linux指令及其示例: 1. ls 列出目录内容。 ls 显示当前目录下的文件和文件夹。 ls -l 以详细格式列出文件和文件夹的信息(如权限、拥有者、大小等)。 2. cd 改变当前目录。 cd /path/to/dire…...
Momenta C++面试题及参考答案
vtable 的创建时机 在 C 中,vtable(虚函数表)是在编译阶段创建的。当一个类包含虚函数时,编译器会为这个类生成一个 vtable。vtable 本质上是一个函数指针数组,其中每个元素指向一个虚函数的实现。这个表的布局是由编译…...
AI 在软件开发流程中的优势、挑战及应对策略
AI 在软件开发流程中的优势、挑战及应对策略 随着人工智能技术的飞速发展,AI大模型正在逐步渗透到软件开发的各个环节,从代码自动生成到智能测试,AI的应用正在重塑传统的软件开发流程。本篇文章将分析AI在软件开发流程中带来的优势࿰…...
langchain runnable
LangChain 文档详细解析 LangChain 是一个用于构建与语言模型(如GPT-4)交互的框架。本文档介绍了LangChain v0.1版本中的Runnable接口及其相关功能。 目录 Runnable接口输入和输出模式使用示例异步方法事件流并行处理 1. Runnable接口 为了简化自定义…...
nginx配置不缓存资源
方法1 location / {index index.html index.htm;add_header Cache-Control no-cache,no-store;try_files $uri $uri/ /index.html;#include mime.types;if ($request_filename ~* .*\.(htm|html)$) {add_header Cache-Control "private, no-store, no-cache, must-revali…...
Linux系统程序设计--4.进程
程序与进程 内核中的进程结构 task_struct(进程表项和进程控制块) 位于/usr/src/linux-headers-4.15.0-213-generic/include/linux/sched.h C程序启动过程 进程终止方式 进程终止函数 atexit 小案例 #include<stdio.h> #include<string.h> #include<stdlib…...
springboot/ssm网购平台管理系统Java在线购物商城管理平台web电商源码
springboot/ssm网购平台管理系统Java在线购物商城管理平台web电商源码 基于springboot(可改ssm)vue项目 开发语言:Java 框架:springboot/可改ssm vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库&…...
2024年Android面试总结
2024年Android面试总结 1.动画类型有哪些?插值器原理? 2.StringBuffer和StringBuilder区别? 3.jvm内存模型? 4.线程池7大核心参数及原理? 5.Android多进程通信方式有哪些?各自的优缺点? 6…...
UE5 slate BlankProgram独立程序系列
源码版Engine\Source\Programs\中copy BlankProgram文件夹,重命名为ASlateLearning,修改所有文件命名及内部名称。 ASlateLearning.Target.cs // Copyright Epic Games, Inc. All Rights Reserved.using UnrealBuildTool; using System.Collections.Ge…...
小米PC电脑手机互联互通,小米妙享,小米电脑管家,老款小米笔记本怎么使用,其他品牌笔记本怎么使用,一分钟教会你
说在前面 之前我们体验过妙享中心,里面就有互联互通的全部能力,现在有了小米电脑管家,老款的笔记本竟然用不了,也可以理解,毕竟老款笔记本做系统研发的时候没有预留适配的文件补丁,至于其他品牌的winPC小米…...
家庭智慧工程师:如何通过科技提升家居生活质量
在今天的数字化时代,家居生活已经不再只是简单的“住”的地方。随着物联网(IoT)、人工智能(AI)以及自动化技术的快速发展,越来越多的家庭开始拥抱智慧家居技术,将他们的家变得更加智能化、便捷和…...