三篇物联网漏洞挖掘综述
由于物联网设备存在硬件资源受限、硬件复杂异构, 代码、文档未公开的问题, 物联网设备的漏洞挖掘存在较大的挑战:
- 硬件资源受限性: 通用动态二进分析技术需要在运行程序外围实施监控分析。由于物联网设备存储资源(存储)的受限性, 无法部署相关的分析模块,导致动态分析技术无法适用。同时硬件 CPU 的计算能力有限, 会造成动态分析性能下降。
- 硬件的复杂异构: 一方面, 物联网设备 CPU 架构与通用平台不同, 导致程序指令集上存在差异性。通用软件的指令架构通常是 X86 或 X86_64。而物联网程序通常采用 ARM、MIPS、PowerPC 等嵌入式架构。因此直接基于通用 CPU 指令汇编的静态分析方案不再适用。另一方面, 物联网设备外围 I/O 硬件存在多样化, 增加动态分析技术的适配难度。
- 代码、文档未公开: 对于通用软件, 可以对源代码或者二进制程序进行分析以挖掘漏洞。而对于物联网设备而言, 大多数程序均为定制的商业化程序, 通常只能将设备固件作为分析对象, 只有少量设备有相应的源代码以用于分析。因此, 大量源代码分析技术不再适用于物联网设备漏洞挖掘。另外固件的组织形式和数据内容也区别于通用程序, 因此基于二进制的静态分析技术也不能直接使用。
由于物联网设备自身的特点不仅为漏洞挖掘带来挑战, 同时也带来了更多新的机遇:
- 系统交互的丰富性: 虽然是对物联网设备进行漏洞挖掘, 但物联网设备通常会与终端、云等系统进行交互, 因此设备本身存在更多的攻击面。对于动态二进制分析方案, 可以充分利用外部交互系统的信息, 对新的攻击面的进行测试分析。
- 组件代码的大量复用: 物联网设备程序在开发的过程中, 为了节省开发成本, 大量使用开源的第三方库, 致使大量第三方组件的漏洞也存在于物联网设备中。之前基于二进制比对的静态分析技术主要是通过不同层次信息(控制流、程序块、指令级)的差异性来发现安全漏洞, 而现在可以通过不同层次信息的相似性来挖掘同源漏洞。
- 漏洞类型的趋同性: 通用软件漏洞类型包含内存破坏类(栈溢出、堆溢出、空指针应用、二次释放等)、输入验证类(命令注入等)、配置错误类等。漏洞存在的位置可以是在内核、驱动、用户态服务程序中。而对于含有操作系统的物联网设备固件来说, 同样存在这些类型的漏洞。因此无论是静态二进制还是动态二进制分析技术, 通用的漏洞检测规则仍然适用于物联网设备固件和程序。
虽然通用平台的漏洞挖掘技术和工具不能完全适用于物联网设备, 但大部分程序分析技术、安全测试思路和方案仍可用于物联网设备。因此, 物联网设备漏洞挖掘技术仍然以通用程序分析和安全测试技术作为基础, 结合物联网设备特点, 开展了相关漏洞挖掘技术的研究。同时, 通用漏洞挖掘技术仍然在蓬勃发展, 给物联网设备漏洞挖掘技术不断注入新
当前的物联网设备的漏洞挖掘技术在静态分析、动态模糊测试、同源性分析技术上都有一定的进展。其中, 静态分析技术能够有效解决固件的解析, 以及固件中通用漏洞的分析问题。但对于物联网设备特定漏洞的高效分析, 仍然缺乏深入的思考和探究。此外, 对于无操作系统和包含特定嵌入式操作系统的固件, 仍然缺少系统性的分析和研究。
对于模糊测试技术, 目前能够实现部分设备(如路由器、网络摄像头)固件的高效仿真和灰盒测试, 从而快速发现漏洞。但对于整个物联网设备生态, 目前的模糊测试技术和工具仍然在输入生成、仿真、监控、异常检测等各个方面存在局限性。
对于同源性分析技术, 目前的技术已支持大规模固件的多层次关联, 从而实现同源漏洞的发现。之后的发展方向应该是针对特定漏洞类型, 有效提取特征并进行编码, 从而实现特定类型同源漏洞的精准, 快速发现。
从固件获取开始, 根据固件的不同类型, 需要选择性的完成程序集提取、目标程序提取、程序表示、执行信息恢复等分析步骤。
固件获取: 该步骤通过多种方式获得固件以用于后续分析。获取方式主要分为两大类: 直接从物联网设备中提取, 或是从厂商的官网进行下载。对于第一大类, 共有两种方式。第一种是通过UART 或 JTAG 硬件调试接口登入系统并读取内存, 从而恢复出固件内容; 第二种是直接利用读写器完成 flash 芯片内固件的直接提取。而本项目的数据来源是由奇安信所提供的1000个固件数据集,所以本项目不着重考虑获得固件数据。
固件格式分析: 该步骤分析固件的组织形式和数据内容。固件按照组织形式通常分为两类: 包含操作系统的固件和不包含操作系统的固件。在包含操作系统的固件中, 大部分设备功能由用户程序完成, 系统调用操作、程序加载过程、库函数调用均有规范的定义。其中, 操作系统可以是通用操作系统,如定制化的 Linux,;也可以是特定嵌入式操作系统,如实时操作系统 VxWorks。在不包含特定操作系统的固件中, 固件直接工作在设备上, 包含了简单的任务调度等类操作系统功能。无论是哪一类型的固件, 首先需要判断固件是否被压缩。若固件压缩, 需先解压, 然后再进一步分析。
固件程序提取技术: 该步骤是从包含操作系统的固件中提取所有的文件和程序。对包含操作系统的固件, 由于操作系统和文件系统通常都在头部含有特征码或特征字符串, 因此可以通过基于签名匹配的方式识别出操作系统镜像和文件系统, 并进一步对文件系统进行解压, 提取出所有文件和程序。
目标程序分析提取: 对含有操作系统的固件, 该步骤对提取出的所有程序和文件集合, 进一步提取出待分析的目标程序。当前, 目标程序的提取主要是通过搜寻特定文件名实现。若目标程序是 Web 服务程序, 只需搜索文件名包含 http 的文件, 即可找到目标程序。这种方法通常直接且有效, 但对于大规模固件的目标程序提取, 具有较低的召回率。因此, 大规模固件的特定目标服务程序提取技术仍需深入研究。
程序表示技术: 该步骤是将二进制代码以中间语言或汇编等形式表示。无论是对于无操作系统的固件或是待分析的目标服务程序, 均需将二进制转换成汇编代码。有时为了屏蔽汇编指令格式的差异性, 需进一步转化为统一的中间语言。
执行信息恢复技术: 该步骤将恢复程序的加载地址、入口地址等执行信息。对于包含操作系统的固件, 其目标服务程序的文件格式(如广泛采用Linux 下的 ELF 可执行文件格式)通常是标准、公开的, 逆向技术已经相当成熟。而对于无操作系统的固件程序, 由于缺少固件执行的描述信息, 导致程序信息恢复不完整,无法进一步实现精准的程序分析。缺失的信息包括: 第一,固件运行时的加载地址。这将导致很多跳转无法被解析; 即使已恢复出指令信息, 控制流信息仍不完整。第二,程序入口地址。这将导致无法深入分析。
目前, 目标程序提取与信息恢复技术能够有效解决包含操作系统的物联网设备固件的分析。从固件解压, 文件系统解析, 可执行程序解析到可执行程序的逆向, 技术基本上已经成熟。而对于无操作系统设备固件分析, 整个固件就是特殊的可执行程序, 对该类固件的分析仍处于起步阶段。
在目标程序提取与信息恢复之后, 通过建立漏洞分析规则, 并结合静态程序分析技术, 实现漏洞的挖掘。除了通用漏洞类型(如污点类漏洞), 物联网设备漏洞挖掘更关注特定漏洞类型和模块, 如硬编码、认证绕过等后门漏洞。该漏洞类型属于物联网设备特定漏洞, 通常为了方便设备调试人员进入系统或进行特权操作。其在物联网设备上普遍存在, 而在通用程序上较为少见。
针对硬编码漏洞类型, Thomas等提出基于静态数据分析的漏洞挖掘方法。该工作首先识别出程序中的静态数据比对函数, 通过提取函数特征并对静态数据比对函数进行建模来识别。接着通过程序控制流分析技术来判定静态数据比对的重要性,根据它影响代码块的独特性, 之后进一步评估出函数的重要性。通过进一步对重要性函数的静态分析, 发现了硬编码的认证后门漏洞, 并恢复出 FTP、SOAP 协议的重要指令集。该工作具有很强的实用性, 然而在后门漏洞挖掘与基于文本的协议指令恢复的这两个应用中, 均不能保证准确性和召回率。因此, 该方案在大规模测试中的适用性无法得到保证。为了进一步识别物联网设备固件程序中的后门, Thomas利用半监督学习的方法, 构造了识别固件中二进制功能的分类器。并通过自定义二进制函数功能描述语言, 识别二进制中的非预期功能。实验表明有96.45%的二进制功能的识别准确率, 并在Tenda设备中挖掘出后门漏洞。
针对认证绕过漏洞类型, Shoshitaishvili等提出基于程序分析的物联网设备认证绕过漏洞的挖掘方法。首先, 该工作人为定义程序特权点,包括未认证的情况下不能输出的数据、未认证情况下不可执行的系统操作、对内存绝对地址的访问、人工分析出的相关特权函数。在此基础上, 构建固件代码的控制流、数据依赖、控制依赖图, 然后基于切片技术生成到特权点的路径, 并采用符号执行技术求解路径条件, 从而发现物联网设备认证绕过漏洞。该工作采用切片技术对程序路径进行简化, 使符号执行分析有较高的分析性能。然而, 该工作无法解决程序被混淆之后的分析难题。
针对通用污点类漏洞类型, Cheng等提出物联网设备固件污点类漏洞的检测方法, 主要通过函数分析提取变量描述、定义对、数据类型等信息, 并解决函数数据流分析、指针别名分析、数据结构恢复等难题。该工作发现了8个已知漏洞和13个零日漏洞, 且在时间开销上优于Angr。
针对协议解析模块, Cojocar等首次提出基于协议解析模块识别的物联网设备漏洞挖掘方法。该工作通过协议解析模块离散特征的提取以及分类器的构造, 实现协议解析模块的精确识别, 并聚焦于该类模块的漏洞挖掘, 发现 GPS 接收器、电表、硬盘驱动、程序逻辑控制器多类型物联网设备的漏洞。在此基础上, Zheng 等提出基于多维度特征的应用层协议解析模块的识别技术, 并与基于二进制属性图的可疑脆弱点推断技术相结合, 实现污点类漏洞的快速发现。
目前基于程序分析的漏洞发现技术能够有效的针对特定漏洞类型(硬编码、认证绕过、污点类)和模块(协议解析模块)。然而这些研究工作大多需要人工辅助, 自动化程度不足。此外, 研究工作的分析对象仍然是用户程序。在针对物联网设备特定实时操作系统方面, 仍然缺少相应的漏洞挖掘工作。
随着近些年人工智能的快速发展,其也被运用到了漏洞挖掘这个领域,尤其是静态分析方法。
在静态分析方法中,用的最多的是代码相似性检测。其通过对比待分析代码与漏洞代码的相似度来进行漏洞挖掘。因为人工智能中的模型的输入为向量的形式,所以就需要对待分析代码进行特征提取,从特征形式的角度,主要可以把其划分为四种,分别为代码度量,基于Token的表征,基于抽象语法树的表征,基于图的表征。
代码度量:代码度量可以作为表示代码特性的度量指标,常用的有代码行数、图复杂度、继承深度和类耦合等
基于Token的表征:基于 Token 的表征形式通过对源代码进行词法分析得到,即:在编译过程中扫描源代码的字符流,依据程序语言的词法规则标记源代码的标识符、关键字、函数名和运算符等重要信息,从而将源代码的字符流转换成等价 Token 序列
基于抽象语法树的表征:抽象语法树(abstract syntax tree,简称 AST)是编译过程中的一种中间表示形式,树节点上存储的是代码的语法结构信息。基于 AST 的表征形式通常先使用 LEX/YACC、FLEX/BISON、ANTLR 等开源的词法和语法分析工具进行预处理,生成词法分析器和语法分析器。接着对代码进行词法分析和语法分析,将分析的结果构建成 AST,对语法树节点进行编码作为代码的特征
基于图的表征:图是一种比树更为抽象复杂的表示形式,图的顶点之间是多对多的关系,并且不具有树结构中明确的父子节点层次划分.因此,基于图的表征形式能够反映代码中更丰富的语法和语义特征,有很好的检测能力.如常用的程序依赖图表示软件程序的控制依赖和数据依赖关系,控制流图(control flow graph,简称CFG)则是由编译器在内部维护的一种程序的抽象表现,代表了程序执行过程中会遍历到的所有路径.
相关文章:
三篇物联网漏洞挖掘综述
由于物联网设备存在硬件资源受限、硬件复杂异构, 代码、文档未公开的问题, 物联网设备的漏洞挖掘存在较大的挑战: 硬件资源受限性: 通用动态二进分析技术需要在运行程序外围实施监控分析。由于物联网设备存储资源(存储)的受限性,…...
【动态规划】落花人独立,微雨燕双飞 - 8. 01背包问题
本篇博客给大家带来的是01背包问题之动态规划解法技巧. 🐎文章专栏: 动态规划 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅🚀 要开心要快乐顺便…...
uniapps使用HTML5的io模块拷贝文件目录
最近在集成sqlite到uniapp的过程中,因为要将sqlite数据库预加载,所以需要使用HTML5的plus.io模块。使用过程中遇到了许多问题,比如文件路径总是解析不到等。尤其是应用私有文档目录’_doc’。 根据官方文档: 为了安全管理应用的…...
Word2Vec如何优化从中间层到输出层的计算?
文章目录 Word2Vec如何优化从中间层到输出层的计算?用负采样优化中间层到输出层的计算负采样方法的关键思想负采样的例子负采样的采样方法 Word2Vec如何优化从中间层到输出层的计算? 重要性:★★ 用负采样优化中间层到输出层的计算 以词汇…...
C#中的语句
C#提供了各式各样的语句,大多数是由C和C发展而来,当然,在C#中做了相应修改。语句和表达式一样,都是C#程序的基本组成部分,在本文我们来一起学习C#语句。 1.语句 语句是构造所有C#程序的过程构造块。在语句中可以声明…...
2.3.1(项目)kv存储——框架梳理(待定)
一、过一遍代码路线: 体会:(1)接口统一、测试标准统一,软件才会有量产的过程;(b)多层框架,实现业务部分和网络部分的完全剥离。 实现多层框架: ࿰…...
【YOLOv10改进[Backbone]】使用ConvNeXtV2替换Backbone
本文将进行在YOLOv10中使用ConvNeXtV2替换Backbone魔改v10的实践,文中含全部代码、详细修改方式。助您轻松理解改进的方法。 目录 一 ConvNeXtV2 二 魔改YOLOv10 1 整体修改 ① 添加python文件 ② 修改ultralytics/nn/tasks.py文件 2 配置文件...
在C#中添加I/O延时和持续时间
在C#中添加I/O延时和持续时间,可以通过以下方法实现。具体来说,延时可以通过Thread.Sleep、Task.Delay等方式来模拟延迟,而持续时间的控制可以通过循环结构来设定持续的时间。在执行I/O操作时,你可以在操作之间添加延时࿰…...
VUE之路由Props、replace、编程式路由导航、重定向
目录 1、路由_props的配置 2、路由_replaces属性 3、编程式路由导航 4、路由重定向 1、路由_props的配置 1)第一种写法,将路由收到的所有params参数作为props传给路由组件 只能适用于params参数 // 创建一个路由器,并暴露出去// 第一步…...
RabbitMQ的消息可靠性保证
文章目录 1.环境搭建1.common-rabbitmq-starter 配置防止消费者抢消息(基础配置)2.common-rabbitmq-starter-demo下创建一个生产者一个消费者 2.生产者可靠性1.开启消息超时重试机制2.生产者开启ConfirmCallback消息确认机制1.application.yml2.TestConf…...
MySQL 很重要的库 - 信息字典
在做owasp SQL 注入的时候,有个很重要的库,那就是 信息库: 这个库就是: information_schema; (准确的说,数据字典) mysql> show databases; -------------------- | Database | -------------------- | informa…...
使用C#对指定的MYSQL数据库进行备份以及常见问题
最近在开发过程中,需要做个MYSQL数据库的备份,大致总结了一下代码,以及常见的坑 string bakName "database" DateTime.Now.ToString("yyyyMMddHHmmss") ".sql";//备份后的数据库文件名var bakupFilePath &q…...
Appium(四)
一、app页面元素定位 1、通过id定位元素: resrouce-id2、通过ClassName定位:classname3、通过AccessibilityId定位:content-desc4、通过AndroidUiAutomator定位5、通过xpath定位xpath、id、class、accessibility id、android uiautomatorUI AutomatorUI自…...
jvm_threads_live_threads 和 jvm_threads_states_threads 这两个指标之间存在一定的关系,但它们关注的维度不同
jvm_threads_live_threads 和 jvm_threads_states_threads 这两个指标之间存在一定的关系,但它们关注的维度不同。以下是它们的详细关系和区别: 1. jvm_threads_live_threads 含义: 表示当前 JVM 中存活的线程总数(即当前活动的线…...
docker 部署.netcore应用优势在什么地方?
目录 1. 环境一致性 2. 简化依赖管理 3. 快速部署与扩展 4. 资源利用率高 5. 版本控制与回滚 6. 安全性 7. 生态系统支持 8. 微服务架构支持 9. 降低成本 10. 开发体验提升 总结 使用 Docker 部署 .NET Core 应用有许多优势,特别是在开发、测试和生产环境…...
SpringBoot开发(一)应用jar包
1. SpringBoot开发 1.1. 目标及简介 1.1.1. 目标 (1)掌握微服务SpringBoot在实际项目开发中常用的核心技术栈及其在典型业务场景下的应用实战。 (2)掌握SpringBoot SpringMVC Mybatis在Java Web应用开发过程的技术干货以及…...
【Linux】深刻理解动静态库
1.什么是库 库是写好的现有的,成熟的,可以复⽤的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个⼈的代码都从零开始,因此库的存在意义⾮同寻常。本质上来说库是⼀种可执⾏代码的⼆进制形式,可以被操作系统载…...
【spring 事务】事务的基本使用,事务隔离级别、事务传播机制
在Spring框架中,声明式事务管理是一种通过注解或配置文件自动管理事务的方式,而不需要手动编写事务管理代码。Transactional是Spring提供的一个注解,用于声明式事务管理,它使得事务的管理变得简单而清晰。 主要特性 自动事务管理…...
arkime 和elasticsearch安装方法二
这次试一下新的办法 先下载centOS 7 然后改成阿里云镜像 输入命令备份官方yum源配置文件 cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 下载阿里云源配置,覆盖原文件 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirr…...
GitCode 助力 AutoTable:共创 MyBatis 生态的自动表格管理新篇章
项目仓库https://gitcode.com/dromara/auto-table 解放双手,专注业务:MyBatis 生态的“自动表格”创新 AutoTable 是一款致力于为 MyBatis 生态赋予“自动表格”功能的创新插件。其核心理念是通过 Java 实体类自动生成和维护数据库的表结构,…...
日历热力图,月度数据可视化图表(日活跃图、格子图)vue组件
日历热力图,月度数据可视化图表,vue组件 先看效果👇 在线体验https://www.guetzjb.cn/calanderViewGraph/ 日历图简单划分为近一年时间,开始时间是 上一年的今天,例如2024/01/01 —— 2025/01/01,跨度刚…...
ue5 制作,播放,停止动画蒙太奇
右键,动画蒙太奇 新建插槽 把默认插槽选择为,自己新建的插槽 然后拖一个动画进去 input换成玩家0 就可以接收键盘事件 pawn 自动控制玩家换成玩家0 找到动画蓝图 把它化成我们那边蒙太奇里面的槽 第三步:第三人称角色蓝图 按下F…...
Genetic Prompt Search via Exploiting Language Model Probabilities
题目 利用语言模型概率的遗传提示搜索 论文地址:https://www.ijcai.org/proceedings/2023/0588.pdf 项目地址:https://github.com/zjjhit/gap3 摘要 针对大规模预训练语言模型(PLMs)的即时调优已经显示出显著的潜力,尤其是在诸如fewshot学习…...
mysql之表的外键约束
MySQL表的外键约束详细介绍及代码示例 外键约束是数据库中用于维护数据完整性和一致性的重要机制。它确保一个表中的数据与另一个表中的数据相关联,防止无效的数据引用。本文将详细介绍了外键约束的各个方面,并通过具体的代码示例进行演示。 1. 外键约束…...
linux环境变量配置文件区别 /etc/profile和~/.bash_profile
在 Linux 系统中,环境变量可以定义用户会话的行为,而这些变量的加载和配置通常涉及多个文件,如 ~/.bash_profile 和 /etc/profile。这些文件的作用和加载时机各有不同。以下是对它们的详细区别和用途的说明: 文章目录 1. 环境变量…...
C++----STL(vector)
vector的介绍 vector的文档介绍:cplusplus.com/reference/vector/vector/ 1.基本概念 简单来说,vector是表示可以改变大小的数组的顺序容器。使用连续的存储位置来存储元素,因此可以通过常规指针的偏移量来高效访问。 2.内部机制 vector…...
springboot项目适配电科金仓数据库
又接到了信创适配任务,话不多说,直接开始干货 首先安装一下电科金仓的数据库,直接官网下,对应的授权也下90天的专业版,客户肯定是整个采购,365天的开发版本连接数有限制 KES相关下载地址:电科金仓-成为世界卓越的数据库产品与服务提供商 安装就不做赘述了 启动数据库…...
C# 动态创建Label和ComboBox控件并修改Text获取Text
背景:在做项目的时候可能需要根据一定数量创建某些控件并修改其属性,本文以控件label、ConboBox控件进行动态创建。 程序运行前后的的Form动态图 代码如下: using System; using System.Collections.Generic; using System.ComponentModel; …...
HP 笔记本重新安装 Windows 11 无法启动
相信你搜到这篇文章的时候, 你已经看过了网上各种关于如何在 HP 笔记本电脑上安装 Windows 11 的文章。你遇到的问题肯定不是网上那些文章讲的那么简单的问题。你遇到的一定不是你不懂如何安装 Windows,不懂如何对硬盘分区等等小白问题。 问题描述 问…...
BUUCTF_Web( XSS COURSE 1)xss
XSS即跨站脚本攻击(Cross-Site Scripting),是一种常见的网络安全漏洞. 定义 XSS攻击指攻击者在目标网站中注入恶意脚本,当用户访问该网站时,浏览器会执行这些恶意脚本,从而导致用户信息泄露、被控制等安全问…...
STM32补充——IAP
0 前置知识: FLASH相关内容:前往STM32补充——FLASH STM32三种烧录方式(看看就行): 1.ISP:In System Programming(在系统编程) 执行芯片厂商的 Bootloader 程序进入 ISP 模式&…...
APP加固的那些事
APP加固是保护APP代码逻辑的重要手段,通过隐藏、混淆、加密等操作提高软件的逆向成本,降低被破解的几率,保障开发者和用户利益。本文将介绍APP加固常见失败原因及解决方法,以及处理安装出现问题的情况和资源文件加固策略选择。 引…...
数据分析 基础定义
一、大数据的定义 数据分析是基于商业等目的,有目的的进行收集、整理、加工和分析数据,提炼有价值信息的过程。 大数据分析即针对海量的、多样化的数据集合的分析 大数据分析是一种利用大规模数据集进行分析和挖掘知识的方法。随着互联网、社交媒体、移动…...
PyTorch广告点击率预测(CTR)利用深度学习提升广告效果
目录 广告点击率预测问题数据集结构广告点击率预测模型的构建1. 数据集准备2. 构建数据加载器3. 构建深度学习模型4. 训练与评估 总结 广告点击率预测(CTR,Click-Through Rate Prediction)是在线广告领域中的重要任务,它帮助广告平…...
嵌入式入门(二)-STM32CubeMX项目开发
使用STM32CubeMX创建项目 本文使用STM32CubeMX模拟器创建一个嵌入式项目的详细流程。 New Project 根据型号搜索 搜索型号: STM32F103C8T6 启动项目 选择STM32F103C8T6后点击 Start Project 配置时钟 切换到 Clock Configuration 修改HCLK -->72MHZ 修改Input fr…...
MATLAB绘图时线段颜色、数据点形状与颜色等设置,介绍
MATLAB在绘图时,设置线段颜色和数据点的形状与颜色是提高图形可读性与美观性的重要手段。本文将详细介绍如何在 MATLAB 中设置这些属性。 文章目录 线段颜色设置单字母颜色表示法RGB 值表示法 数据点的形状与颜色设置设置数据点颜色和形状示例代码 运行结果小结 线段…...
Java菜鸟养成计划(java基础)--java运算符
java中的运算符 1、java中的运算符1.1 、 、-、 * 、/ 、 %1.2 、、-、 *、/、%1.3 、、--【自增\自减运算符】1.4、>、 <、 > 、< 、 、! 、! 1.5、&&、||、|、&1.6、&、|、~、^1.7、>> 、 <<、>>>位运算1.8、?:三目运算符…...
学习笔记——动态规划
递推 1.递推和动态规划有什么关系? 递推问题包括动态规划,动态规划一定是递推,递推不一定是动态规划。 动态规划是一种决策性的问题,是在状态中做最优决策的一种特殊递推算法,通常的问法包括求最大最小值等ÿ…...
蓝桥杯备考:红黑树与map和set
搜索二叉树 我们三种树只了解原理,不写代码,因为我们竞赛不做要求,只是为了使用set和map做铺垫 原理记不住,没关系,我们只要会各种操作的时间复杂度 二叉搜索树的定义 1若左子树非空,左子树所有结点的权…...
第二届生成式人工智能与信息安全国际学术会议(GAIIS 2025)
在线投稿: 学术会议-学术交流征稿-学术会议在线-艾思科蓝 【征文主题】(包括但不限于) 深度学习 自然语言处理 算法应用 计算机视觉 视觉识别 模式识别 强化学习 生成对抗网络 生成建模技术 语言预训练 视觉预训练 联合预训练…...
后端面试题分享第一弹(状态码、进程线程、TCPUDP)
后端面试题分享第一弹 1. 如何查看状态码,状态码含义 在Web开发和调试过程中,HTTP状态码是了解请求处理情况的重要工具。 查看状态码的步骤 打开开发者工具: 在大多数浏览器中,您可以通过按下 F12 键或右键单击页面并选择“检查…...
Python 常用运维模块之OS模块篇
Python 常用运维模块之OS模块篇 OS 模块获取当前工作目录更改当前工作目录返回当前目录路径返回上一级目录路径递归生成目录路径删除目录创建目录删除目录列出特定目录下文件和子目录删除某个特定文件重命名某个文件获取某个文件/目录的信息输出目录路径分隔符输出文件行终止符…...
前沿技术趋势洞察:2024年技术的崭新篇章与未来走向!
引言 时光飞逝,2024年已经来临,回顾过去一年,科技的迅猛进步简直让人目不暇接。 在人工智能(AI)越来越强大的今天,我们不再停留在幻想阶段,量子计算的雏形开始展示它的无穷潜力,Web …...
HTML语言的数据结构
HTML语言的数据结构 引言 HTML(超文本标记语言)是构建网页的标准语言。尽管HTML本身不是一种编程语言,它为我们提供了一种结构化的信息表示方法,使得网页内容能够有序地展现给用户。HTML的核心在于其标记(标签&#…...
怎么创建一个能在线测试php的html5网页?
代码示例: 一、搭建服务器环境 首先,你需要在服务器上搭建 PHP 运行环境。如果你使用的是 Linux 服务器,可以使用 Apache 或 Nginx 作为 Web 服务器,并安装 PHP 解释器。对于 Windows 服务器,可以使用 WAMP(…...
docker安装elk6.7.1-搜集nginx-json日志
docker安装elk6.7.1-搜集nginx-json日志 如果对运维课程感兴趣,可以在b站上、A站或csdn上搜索我的账号: 运维实战课程,可以关注我,学习更多免费的运维实战技术视频 0.规划 192.168.171.130 nginxfilebeat 192.168.171.131 …...
常见的社交媒体平台有哪些?
社交媒体平台有哪些?在跨境电商和全球营销的过程中,海外社交媒体平台是提高品牌曝光率的重要工具。为了有效管理多个平台的账户,并防止账户之间的关联问题,OKBrow指纹指纹浏览器凭借其强大的多账户管理、防关联技术和隐私保护功能…...
nslookup在内网渗透的使用
1. 什么是 nslookup? nslookup(Name Server Lookup)是一个用于查询 DNS(域名系统)记录的命令行工具。通过该工具,用户可以查询域名的解析结果,例如获取某个域名对应的 IP 地址或查找域名的相关记…...
Linux:修改用户名
Linux:修改用户名 0. 注意事项1.创建并切到临时用户tempuser2.更改用户名3.删除临时用户tempuser 更多内容:XiaoJ的知识星球 在Ubuntu系统中,更改用户名。 0. 注意事项 备份重要数据:在更改用户名之前,建议备份重要数…...
IP协议特性
在网络层中,最重要的协议就是IP协议,IP协议也有两个特性,即地址管理和路由选择。 1、地址管理 由于IPv4地址为4个字节,所以最多可以支持42亿个地址,但在现在,42亿明显不够用了。这就衍生出下面几个机制。…...