1.漏洞信息

1.1 漏洞简介

  • 漏洞名称:Fastjson 1.2.24远程代码执行漏洞(com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl)
  • 漏洞编号:无
  • 漏洞类型:远程代码执行
  • CVSS评分:无
  • 漏洞危害等级:高危

1.2 组件概述

Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。下图是Fastjson组件中的反序列化流程。

1.3 漏洞概述

漏洞是利用fastjson autotype在处理json对象的时候,未对@type字段进行完全的安全性验证,攻击者可以传入危险类,服务器接收到危险类执行其中恶意代码。攻击者通过这种方式可以实现远程代码执行漏洞的利用,获取服务器的敏感信息泄露,甚至可以利用此漏洞进一步对服务器数据进行修改,增加,删除等操作,对服务器造成巨大的影响。

1.4 漏洞利用条件

1.5 漏洞影响

影响版本:
Fastjson < 1.2.25

1.6 漏洞修复

获取Fastjson最新版本,下载链接:https://github.com/alibaba/fastjson

2.漏洞复现

2.1 环境拓扑

2.2 应用协议

8080/HTTP

2.3 复现过程

基于Windows平台,使用环境目录下的fastjsondemo环境,拷贝后使用Idea打开fastjsondemo文件夹,下载maven资源,运行DemoApplication类,即可启动环境。效果如图。

 

运行sniper工具箱,填写表单信息,点击Attack,效果如图。

3.漏洞分析

3.1 技术背景

JavaBean:

 

JavaBean 是特殊的 Java 类,使用 Java 语言书写,并且遵守 JavaBean API 规范。JavaBean的特征:

  • 提供一个默认的无参构造函数。
  • 需要被序列化并且实现了 Serializable 接口。
  • 可能有一系列可读写属性。
  • 可能有一系列的 getter 或 setter 方法。
方法描述
getPropertyName()举例来说,如果属性的名称为 myName,那么这个方法的名字就要写成 getMyName() 来读取这个属性。这个方法也称为访问器。
setPropertyName()举例来说,如果属性的名称为 myName,那么这个方法的名字就要写成 setMyName()来写入这个属性。这个方法也称为写入器。

 

程序实例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

public class StudentsBean implements java.io.Serializable

{

   private String firstName = null;

   private String lastName = null;

   private int age = 0;

 

   public StudentsBean() {

   }

   public String getFirstName(){

      return firstName;

   }

   public String getLastName(){

      return lastName;

   }

   public int getAge(){

      return age;

   }

 

   public void setFirstName(String firstName){

      this.firstName = firstName;

   }

   public void setLastName(String lastName){

      this.lastName = lastName;

   }

   public void setAge(int age) {

      this.age = age;

   }

}

3.2 详细分析

3.2.1 代码分析

Fastjson通过parseObject方法解析传入的json数据。

 

调用DefaultJSONParser缺省方法对json格式数据进行解析。

 

在方法的参数中,调用ParserConfig.getGlobalInstance()方法获取ParserConfig类中的初始配置,其中黑名单(denyList)也在此类中进行配置。

 

调用addDeny方法循环添加denyList数组中的黑名单。

 

回到DefaultJSONParser方法,初始化结束后,调用JSONScanner方法对传入的json字符串设置读取位置,判断过程中处理Unicode字符集的BOM标识。

 

回到DefaultJSONParser方法,为token赋值。

 

回到JSON入口类,获取到DefaultJSONParser类型对象,调用parse()方法进行解析。

 

在parse方法中,通过判断lexer.token(),进入对应的代码块。

 

调用JSONObject构造方法,初始化JSONObject类中的map属性。

 

回到DefaultJSONParser#parse方法,调用parseObject方法,对传入的json数据进行字节读取。

 

一般会读取json字符串中的双引号进入scanSymbol方法中,在scanSymbol方法中计算字符串的hash。

 

调用addSymbol方法,将键名添加到SymbolTable中。

 

回到DefaultJSONParser#parseObject方法中,判断key值是否为@type。如果是,则进入if判断条件下的代码块中。

 

调用scanSymbol方法,以双引号作为quote变量值,进行@typejson字段值的value读取。

 

获得@type的键值,调用addSymbol方法,将@type的字段值添加到SymbolTable中。

 

回到DefaultJSONParser#parseObject方法中,调用TypeUtils.loadClass方法进行类加载操作。

 

进入loadClass方法中,首先会在现有的mappings中寻找从@type传入的classname。

 

如果在原有的mappings中没有记录传入的classname,则调用contextClassLoader.loadClass获取AppClassLoader类加载器,并加载到mappings中与@type传入的类进行关联,最后返回clazz对象。

 

回到DefaultJSONParser#parseObject方法中,调用this.config.getDeserializer(clazz)获取反序列化器。

 

进入getDeserializer方法中,首先现有的IdentityHashMap中进行hash匹配,如果无法匹配,则进入第二个if判断条件中重载getDeserializer方法,继续获取反序列化器。

 

getDeserializer(Class<?> clazz, Type type)方法中,首先依然会与现有的IdentityHashMap中进行hash匹配。如果无法匹配,会事先进行黑名单匹配,在调用ServiceLoader.load判断META-INF/services/下是否存在传入的classname类。

 

如果没有寻找到对应的类,则判断传入的classname是否是继承java.lang.Enum、是否是array类型选择对应的反序列化器生成方法。如果上述条件不满足,则继续判断传入的classname是否为Set、HashSet、Collection、List、ArrayList,如果不是则继续判断classname是否继承Collection,Map,Throwable接口。如果上述条件都不满足,则调用createJavaBeanDeserializer方法生成JavaBean反序列化器。

 

进入createJavaBeanDeserializer方法,判断asmEnable是否为true,调用JavaBeanInfo.build方法建立JavaBean。

 

建立JavaBean过程中,通过反射机制获取传入的class中所有的属性,方法,并保存在数组中。选择一个无参构造函数作为默认的构造函数。

 

循环遍历method数组中的方法,并从中选取符合条件的方法。(条件:同时满足方法名长度大于4;非静态方法;方法类型为Void。或者方法类型与方法所在类相同)

 

再从筛选的规则中继续筛选出形参数量为1的方法。

 

再从筛选出的方法中获取以set方法开头的方法,并检测JavaBean的方法命名规范,筛选出符合规范的方法。调用TypeUtils.getField方法获取与set方法对应的属性值。

 

进入getField方法中,遍历@type传入的class以及其父类的所有属性值,返回寻找到属性。

 

最终调用add方法,将获取的Field属性保存到fieldList列表中。

 

再以相同的流程筛选出存在get方法的属性值,如果筛选出的filed属性值不在fieldList,则添加到fieldList列表中。

 

调用JavaBeanInfo方法对JavaBeanInfo中的属性进行初始化,并返回实例化对象。

 

回到ParserConfig#createJavaBeanDeserializer方法中,获取到beanInfo对象,并从beaninfo中取出defaultConstructor默认构造器、field属性。

 

通过检测fieldClass属性值,为asmEnable标志位赋值

 

由于@type传入的class中的javabean方法,存在只读属性,因此asmEnable标志位变成false。

 

根据asmEnable标志位,进行if条件判断,调用JavaBeanDeserializer构造方法,并返回实例化对象。

 

在实例化过程中,会将beaninfo中的属性赋值给JavaBeanDeserializer类中的filed反序列化器。

 

回到ParserConfig#getDeserializer方法,调用putDeserializer方法,将生成的反序列化器与@type传入的class类进行关联,最后返回反序列化器

 

回到DefaultJSONParser#parseObject方法,调用deserializer.deserialze方法进行反序列化。

 

进入deserialze方法中,首先根据token值进入到对应的条件代码块。调用scanSymbol方法。

 

进入scanSymbol方法,对传入的json字符串进行解析,和解析@type的流程相同,解析传入的其他属性字段。

 

回到JavaBeanDeserializer#deserialze方法中,解析的属性值返回并赋值到key属性中。

 

调用parseField方法解析属性。

 

进入parseField方法,调用smartMatch方法,获取field反序列化器。

 

进入smartMatch方法,首先会从建立的javabean中寻找是否存在对应key中属性值的操作方法。

 

如果没有匹配到javabean中的方法,则先消除掉属性值中的_-符号,再与javabean中的方法进行匹配,如果匹配成功,则返回反序列化器。如果匹配失败,则返回null。

 

回到parseField方法中,设置Feature.SupportNonPublicField状态,并根据状态值进入if条件判断的代码块中,生成extraFieldDeserializers扩展的反序列化器。再从反序列化器中取出从fastjson获取的json数据中指定的属性。

 

调用parseField方法,按照获取deserializer反序列化器的流程,获取fieldValueDeserilizer反序列化器。得到的fieldValueDeserilizer反序列化器,在parseField方法中调用deserialze方法进行反序列化。

 

由于传入的参数中存在数组,fastjson首先会调用getFastMatchToken方法,获取当前json字符串位置的token标志值。

 

由于json字符串中的数组是以[data]的形式传入的,所以当检测属性值是以[开头,则为token赋值为14。

 

由于是数组类型,因此在获取反序列化器时,会进入ObjectArrayCodec类进行解析。

 

调用ObjectArrayCodec#parseArray方法,进行数组的解析。

 

根据数组中的元素类型,进行token赋值,再依据token,选择对应token值,进入对应的if代码块。

 

解析数组中元素时,如果元素时String类型,则将字符串按照byte类型进行读取,在读取的过程中,会先进行base64解码。

 

最终以]符号作为数组结束符。

 

回到ObjectArrayCodec#deserialze方法中,调用toObjectArray方法,将传入的数组数据,转换成数组对象。

 

回到DefaultDeserializer#parseField方法中,调用setValue方法,将获取的数组对象,赋予到@type class中的对应属性中。

 

在解析最后一个_outputProperties参数时,会在setValue方法中进行反射,调用getOutputProperties方法。

 

此方法会在调用的过程中,实例化从bytecode传入恶意class文件,从而实现攻击。

3.2.2补丁分析

Fastjson1.2.25版本新增了checkAutoType方法,设置了autotype开关,对@type字段进行限制。如果autotype开关关闭,则无法从@type字段传入类进行jndi攻击。

 

增加了黑名单中的类,对fastjson的gadget进行拦截。

4.防御方案

【深信服下一代防火墙】可轻松防御此漏洞, 建议部署深信服下一代防火墙的用户更新至最新的安全防护规则,可轻松抵御此高危风险。
【深信服云盾】已第一时间从云端自动更新防护规则,云盾用户无需操作,即可轻松、快速防御此高危风险。
【深信服安全感知平台】可检测利用该漏洞的攻击,实时告警,并可联动【深信服下一代防火墙等产品】实现对攻击者ip的封堵。
【深信服安全运营服务】深信服云端安全专家提供7*24小时持续的安全运营服务。对存在漏洞的用户,检查并更新了客户防护设备的策略,确保客户防护设备可以防御此漏洞风险。

5.参考链接

1.https://www.runoob.com/jsp/jsp-javabean.html
2.http://xxlegend.com/2018/10/23/%E5%9F%BA%E4%BA%8EJdbcRowSetImpl%E7%9A%84Fastjson%20RCE%20PoC%E6%9E%84%E9%80%A0%E4%B8%8E%E5%88%86%E6%9E%90/
3.https://github.com/alibaba/fastjson/compare/1.2.24...1.2.25

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. es6解构赋值

    定义&#xff1a; 解构赋值语法是一种 Javascript 表达式。通过解构赋值, 可以将属性/值从对象/数组中取出,赋值给其他变量。 语法&#xff1a; //数组结构 var a, b, rest; [a, b] [10, 20]; console.log(a); // 10 console.log(b); // 20//对象解构 ({ a, b } { a: 10, …...

    2024/4/30 9:22:56
  2. 支付FM——云闪付收款码配置教程

    一句话概述 云闪付APP开通商户收款&#xff0c;打开通知权限&#xff0c;商户系统配置后即可 配置教程 打开云闪付APP 点击“收款码”->"商户收款“&#xff0c;云闪付自带的普通收款码有时间限制&#xff0c;所以需要开通商户收款码&#xff0c;按照云闪付提示开通…...

    2024/5/6 4:41:54
  3. 一个个人学习的小游戏demo开源

    简介 之前在学习游戏相关只是的时候&#xff0c;由于学习的比较杂乱&#xff0c;这个过程中写了一个游戏框架&#xff0c;其实就是个小demo&#xff0c;决定开源了&#xff0c;和喜欢游戏开发的人交流学习。代码的资料注释不多&#xff0c;以下是一些效果&#xff0c;其中&…...

    2024/3/23 2:33:30
  4. char和varchar的区别--记保存数据带空格的问题

    区别一&#xff0c;定长和变长char 表示定长&#xff0c;长度固定&#xff0c;varchar表示变长&#xff0c;即长度可变。 数据库表字段如果用char&#xff0c;当插入的长度小于定义长度时&#xff0c;会用空格填充&#xff0c;带来不必要的麻烦&#xff1b; varchar小于定义长…...

    2024/3/23 2:33:28
  5. diff算法

    文章目录什么是Diff算法&#xff1f;传统DiffReact Diff算法优化策略图React中Diff算法的实现对于以上三个策略&#xff0c;react分别对tree diff,component diff,element diff进行算法优化。1.tree diff2.componnet diff3.element diff基于中Diff的开发建议基于tree diff基于c…...

    2024/4/21 8:35:59
  6. ubuntu18.04 显卡驱动的安装

    1、查看显卡硬件型号&#xff1a; ubuntu-drivers devices 2、打开以下链接查看对应的显卡驱动型号&#xff1a;https://www.nvidia.com/Download/index.aspx?langen-us 3、如图所示&#xff0c;打开软件与更新 4、打开附加驱动&#xff0c;将x.xorg ...默认的驱动进行更改为…...

    2024/3/23 2:33:28
  7. JavaScript中let、const、var 的区别

    let、const、var 的区别 var声明的变量存在变量提升(讲变量提升到当前作用域顶部),变量可以再声明之前调用,值为undefined let和const不存在变量提升 let和const存在暂时性死区 var允许重复声明变量, let和const在同一作用域不允许重复声明变量 var不存在块级作用域,let和cons…...

    2024/3/23 2:33:27
  8. IDA7.0安装findcrypt-yara插件时报错

    最近给新环境安装IDA7.0和插件findcrypt3.py 在按照yara-python包时出现以下错误&#xff1a; yara/libyara/include\yara/types.h(33) : fatal error C1083: Cannot open inclu e file: stdbool.h: No such file or directoryerror: command C:\\Users\\sam\\AppData\\Local\…...

    2024/4/17 22:38:50
  9. 分布式微服务治理

    目录 微服务 微服务设计原则 微服务就是四个核心问题&#xff1a; 解决微服务的方案 分布式 RPC介绍 SpringCloud Dubbo学习 Dubbo概述 Dubbo配置步骤 Zookeeper服务注册 Dubbo配置说明 微服务------一种软开技术&#xff0c;面向服务SOA架构的一种变体&#xff…...

    2024/4/6 11:34:14
  10. pyarrow.lib.ArrowInvalid: Casting from timestamp[us] to timestamp[ns] would result in out of bounds

    项目场景&#xff1a; 从oracle读取数据后转为dataframe形式&#xff0c;然后通过to_feather()存入ft文件 之后通过pandas.read_feather()从文件中读取dataframe数据 数据类型包括date&#xff0c;并且有超出时间戳的数据&#xff0c;比如0002-12-01 00:00:00或9999-10-01 00:…...

    2024/4/29 2:16:27
  11. EAS BOS:Caused exception message is: 索引中丢失 IN 或 OUT 参数:: 30

    sql语句设置参数的时候参数过多或者不够&#xff0c;也可能是参数位置出了错。 仔细一点&#xff0c;多检查几遍&#xff0c;可以将sql打印出来&#xff0c;然后在客户端执行。...

    2024/5/5 2:01:47
  12. 多线程之控制线程(join(),sleep(),yeild(),后台线程,线程优先级的使用)

    文章目录1、join线程2、线程睡眠 sleep()方法&#xff08;&#xff09;3、后台线程4、线程让步5、线程优先级1、join线程 join() 方法的作用是使线程同步执行&#xff0c;将并发执行变成串行执行 public class JoinTestDemo {public static void main(String[] args) {ThreadJo…...

    2024/5/6 4:47:09
  13. 使用gmapping算法和turtlebot3机器人在自己构建的室内场景中建图

    本文叙述了在gazebo仿真环境和rviz可视化工具的背景下&#xff0c;使用gmapping算法和turtlebot3机器人在自己构建的室内场景中建图过程 1. 建立工作空间 &#xff08;1&#xff09;建立基本工作空间 mkdir catkin_ws_robotroom cd catkin_ws_robotroom mkdir src catkin_ini…...

    2024/4/26 11:48:29
  14. JDK源码阅读 (三) : StringBuffer、StringBuilder

    2. StringBuffer StringBuffer与String类似&#xff0c;不同之处在于&#xff0c;StringBuffer不具有不可变性&#xff0c;它所持有的字符序列可以被修改。也就是说&#xff0c;当我们对本对象调用拼接或剪裁等操作时&#xff0c;最后返回的是这个对象自身。 此外&#xff0c…...

    2024/5/4 17:14:12
  15. LeetCode刷题记47-24. 两两交换链表中的节点

    LeetCode刷题记47 24. 两两交换链表中的节点 题目 还在上课&#xff0c;再来一个 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(in…...

    2024/5/4 15:42:51
  16. 【SQL】错题记录2

    对某列缺失值进行统一填补 问题点&#xff1a;coalesce&#xff08;含缺失值的列&#xff0c;填补内容&#xff09; select name,coalesce(mobile,07986 444 2266) from teacher显示教师名字及所属学科&#xff0c;若教师在部门1或2&#xff0c;显示学科为Sci&#xff0c;否则…...

    2024/3/23 7:04:48
  17. 一个菜鸡的祥云杯wp(只有签到题和进制反转)

    这次祥云杯除了签到题就搞出来一个杂项&#xff0c;这个wp主要是记录了我做题时的思路&#xff0c;也走了不少弯路&#xff0c;记录一下&#xff0c;希望以后可以做出两道&#xff0c;三道&#xff0c;慢慢进步&#xff01; MISC 签到题 看着这熟悉的编码形式&#xff0c;直接…...

    2024/3/23 7:04:51
  18. 软件测试:面试题整理附答案,一点点面试小总结(第三弹)

    话不多说&#xff0c;我只是一个爱整理软件测试相关的面试题的卑微萌新&#xff0c;直接上干货 有情怀&#xff0c;有干货&#xff0c;点击这里【Python自动化测试】领取更多软件测试面试资料。 简历: 项目介绍:3-5行,该项目主要功能,平台,采用技术,本人在这个项目中工作内容 …...

    2024/3/23 7:04:47
  19. MYSQL忘记root密码,需要重置;越过密码认证,查看当前MYSQL的密码

    问题&#xff1a;MYSQL忘记root密码&#xff0c;需要重置&#xff1b;越过密码认证&#xff0c;查看当前MYSQL的密码&#xff1f; 解决办法&#xff1a; 在【服务】里&#xff0c;关掉mysql进程&#xff1b;以安全模式启动mysql进程&#xff0c;在CMD&#xff08;注意&#x…...

    2024/4/23 0:35:46
  20. ubuntu 定时执行重启(crontab)

    1 .菜鸟教程 2. 使用crontab定时执行shell脚本 步骤一 首先我们先看一下是否安装了crontab。一般情况下linux系统会自带crontab及crond。 sudo apt-get install vixie-cron sudo apt-get install crontabs 步骤二 创建一个测试的脚本test.sh&#xff0c;然后放开…...

    2024/3/23 7:04:44

最新文章

  1. 在Ubuntu上搭建并通过systemctl和Nginx管理Minecraft Java版服务器

    本教程将详细介绍如何在Ubuntu操作系统上搭建一个Minecraft Java版服务器&#xff0c;并使用systemctl服务来管理服务器的启动、停止和重启。同时&#xff0c;我们还将探讨如何通过NGINX设置TCP/UDP转发&#xff0c;使得玩家能够通过域名方便地连接到你的Minecraft服务器。 准…...

    2024/5/6 7:44:42
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 【opencv】示例-epipolar_lines.cpp 对极线

    这段代码总的功能是使用OpenCV库进行立体视觉的估计。它从命令行读取两个图像文件名&#xff0c;使用SIFT算法检测关键点并计算这些点的描述子&#xff0c;接着通过FLANN库进行快速近似最近邻搜索来找到匹配的关键点。然后使用RANSAC方法计算基础矩阵&#xff0c;找到内点&…...

    2024/5/3 23:22:42
  4. Docker Desktop+WSL2安装到自定义路径

    现在大多数软件实在太“流氓”了&#xff0c;在安装过程中&#xff0c;根本不让你选择安装路径&#xff0c;默认安装到$HOME下&#xff08;windows C盘&#xff09;&#xff0c;随着软件的使用增多&#xff0c;可能磁盘空间不够&#xff0c;这个时候就想着&#xff0c;看看某些…...

    2024/5/6 2:23:47
  5. 【C++】C++中的list

    一、介绍 官方给的 list的文档介绍 简单来说就是&#xff1a; list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中…...

    2024/5/5 8:49:36
  6. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/5 18:19:03
  7. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/5 12:22:20
  8. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/5 19:59:54
  9. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/6 7:24:07
  10. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/5 15:25:47
  11. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/6 6:01:13
  12. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/6 7:24:06
  13. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/6 1:08:53
  14. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/5 18:50:00
  15. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/6 0:27:44
  16. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/6 7:24:04
  17. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/6 7:24:04
  18. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/5 13:14:22
  19. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/6 7:24:03
  20. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/5 17:03:52
  21. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/5 21:10:50
  22. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/6 7:24:02
  23. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/6 7:24:01
  24. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/5 17:03:21
  25. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/5 15:25:31
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57