当前位置: 首页 > news >正文

vulnhub靶场【kioptrix-4】靶机

前言

靶机:kioptrix-4,IP地址为192.168.1.75,后期IP地址为192.168.10.8

攻击:kali,IP地址为192.168.1.16,后期IP地址为192.168.10.6

都采用VMware虚拟机,网卡为桥接模式

这里的靶机,官方只给了硬盘文件,没有给出虚拟机可直接加载文件.vmx,所以这里需要自行安装一个,然后导入硬盘

文章中涉及的靶机,来源于vulnhub官网,想要下载,可自行访问官网下载,或者通过下方链接下载https://pan.quark.cn/s/1f8bfb170c6d

安装靶机

首先使用VMware新建一个虚拟机

然后选择稍后安装操作系统

然后选择其他,默认版本即可

然后一直点击下一步直到完成即可

打开新建虚拟机的设置,添加一个硬盘,该路径就是靶机的硬盘位置

然后这时候把原本新建虚拟机的硬盘移除

这里千万别忘了把网络适配器改为桥接模式

这时候直接启动即可成功

主机发现

使用arp-scan -lnetdiscover -r 192.168.1.1/24,因为这两款工具对于同一局域网,同一网段扫描极快,当然也可以使用nmap扫描,我这里因为设备过多,影响截图,所以采用上面两个

信息收集

使用nmap扫描端口

网站信息探测

访问80端口默认界面,发现是一个登录界面

查看页面源代码,发现是form表单,并且是提交给checklogin.php处理的

尝试进行网站目录爆破,借助gobuster、dirsearch、dirb等工具皆可

gobuster dir -u http://192.168.1.75 -w /usr/share/wordlists/dirb/big.txt -x php,zip,gz,tar,txt,md -b 403-404

访问johnrobert都是跳转到index.php

dirsearch -u http://192.168.1.75 -x 404

访问database.sql,发现是类似于日志一样,访问发现添加了一个用户和密码,但是登录网站并不能成功

samba探测

之前扫描出的139445端口,服务为samba,那么尝试确定其版本

使用nmap脚本测试发现版本为3.0.28a,并且使用之前的脚本探测也是这个版本

nmap -sV 192.168.1.75 --script=smb-os-discovery

使用searchsploit搜索对应的版本漏洞,发现并无好用的,毕竟目的是获取shell

searchsploit samba 3.0.28a

尝试使用enum4linux测试,发现几个用户

enum4linux 192.168.1.75 -a

不过当测试ssh爆破时,发现长时间就出现超时,所以暂时搁置

漏洞寻找

根据前面收集的信息,暂无直接漏洞可用,那么开启burp或者yakit

尝试对网站进行抓取数据包进行测试,每一步都抓取数据包测试

但是这里不知道什么原因,这里原本的主机在开启burp后突然无法访问成功了,唉,估计是ip测试技术之类的吧,换一个机器测试,毕竟之前也没有抓取数据包,无法得知数据包情况

抓取登录时的数据包

那么尝试在post请求体数据中修改,在username处发现闭合并未有任何效果

password处发现闭合,出现返回不一样的,这里是数据库的报错

说明存在sql注入,那么尝试万能密码

myusername=john&mypassword=1234'+or+1=1--+&Submit=Login

发现跳转,并且这个重定向有点东西,根据英语意思是否可以理解为登录成功,并在后面指定用户

跟随跳转,发现又跳转到用户界面

再次跟随跳转发现直接登录成功

查看浏览器的界面,并以密码登录,确实成功

这里可以看到登录后,在url的构造是以username为参数指定用户名的,测试直接在url中修改username=robert,但是发现还是john的界面

继续通过抓包修改,也就是以robert登录时的数据包

然后与上面的形式一样进行万能密码测试,发现确实可行

这里注意,抓取的数据包是重新抓取的新的,当然也是可以在其中一个跳转的数据包中修改,也就是在login_success.php?username=john这里修改用户名,也就是前面enum4linux中枚举出的用户名

继续以上面的形式测试loneferret,通过抓包修改的方式以及修改url参数的方式,获取到一个提示

这里因为换了网络,所以这里靶机的ip地址和kali的地址都改变了

靶机地址192.168.10.8kali地址192.168.10.6

当前获取到的两个用户和密码

用户名密码
johnMyNameIsJohn
robertADGAdsafdfwt4gadfga==

一般到这里就可以进行下一步的测试了,不过实际情况中,不知道是否还有遗漏

建议进行一次完整的sql注入,这里就不演示了,很简单的,不过大概率是盲注

所以尝试使用sqlmap进行测试,说不定有些东西

吧抓取的数据包复制,并放置在一个文件中即可,命名为data

使用sqlmapsqlmap -r data --batch --dump

bash逃逸

johnrobert对应的密码,都可以以ssh登录成功,只是这里应该是rbash,太多东西无法使用

这里经过多次测试,发现大多都是无法使用的rbash逃逸,并且可用的命令很少

尝试使用echo写脚本等也是不行。最终无奈,百度一下wp,发现竟然是配合使用,就是这个命令echo os.system('/bin/bash')这个让我不理解。继续搜索,发现这个是lshell的一个漏洞,是针对python2的一个,下面是链接https://dev59.com/unix/LUHGoIgBc1ULPQZFOr8H

靶机内网收集

使用find寻找具有SUID权限的文件

find / -perm -u=s -type f 2>/dev/null
find / -perm -4000 -print 2>/dev/null

sudo,但是没有权限,进一步收集,之前在网站存在sql注入,可能与数据库有交互的,那么去网站目录寻找一下是否连接数据库,确实连接数据库,并且还是以root这个权限极高的用户,且无密码

查看网络连接

ss -antlp
netstat -antlp

查看进程,并发现mysql服务确实以root在运行的

ps aux | grep root
ps -ef | grep root

内核版本信息以及系统信息

uname -a/-r
cat /etc/issue
cat /etc/*release
lsb_release

尝试上传脚本pspy64以及les.sh,发现该靶机首先不能执行二进制文件,然后les.sh需要更高的bash版本才行,所以可能隐藏的一些内容,可能无法收集

提权

既然mysqlroot执行,并且也是指定root连接,密码也为空,就可能直接联想到udf提权,不过需要进一步验证

首先确定数据库版本信息,然后再次连接数据库,并查看安全配置

mysql -uroot -p

可以连接成功数据库

这里我在前面的raven靶机提到过这个提权方式的,对于这个提权,如果secure_file_priv后没有具体值是,代表可能存在提权的。

并且这里的mysql版本信息,是因为当mysql>=5.1时,是必须把udf的动态链接库文件放置于mysql安装目录下的插件文件夹下,才能创建自定义函数,以提权。这里mysql版本是小于的,所以可直接使用

这里的提权方式可以使用默认的文件lib_mysqludf_sys.so,这个是可以执行系统命令的一个函数,根据情况,若是没有加载,需要使用create加载这个文件

或者也可以使用searchsploit搜索出的c文件中的函数进行提权,这里的文件可以自己编写,当然知道原理即可

查看/bin/bash是否修改为SUID权限

发现确实,并且可以直接输入/bin/bash -p提权至root

查看最终文件

对于使用searchsploit搜索出的,直接进行复原即可,因为文件中有每一步的用法,这里就省略

或者可以看之前的靶机raven系列,那个是mysql版本>=5.0的。链接:https://mp.weixin.qq.com/s/M1MQcKTW738sx463Vo7pgg

总结

该靶机主要考察:

  1. 对于sql注入,要结合,不要只看固定的地方,这里是根据http协议,存在于post方式中,那么依次类推,是否可以存在请求头中呢,要去思考
  2. 对于rbash逃逸,也要考虑可能是版本问题,这里就是lshell的版本漏洞,导致执行python中的函数
  3. 对于mysqludf提权,要知道条件,不然就是盲目的去硬碰,这里知道UDF提权条件后,就可以根据版本来进行测试,当然可以自己写提权文件

相关文章:

vulnhub靶场【kioptrix-4】靶机

前言 靶机:kioptrix-4,IP地址为192.168.1.75,后期IP地址为192.168.10.8 攻击:kali,IP地址为192.168.1.16,后期IP地址为192.168.10.6 都采用VMware虚拟机,网卡为桥接模式 这里的靶机&#xf…...

科普:ROC AUC与PR AUC

在评价二分类模型性能时,有许多评价指标,其中,有一对是用面积AUC(Area Under the Curve)做评价的:ROC AUC与PR AUC 本文我们对ROC AUC与PR AUC进行多维度对比分析: 一、定义与核心原理 维度RO…...

服务器IPMI用户名、密码批量检查

背景 大规模服务器部署的时候,少不了较多的网管和监测平台,这些平台会去监控服务器的性能、硬件等指标参数,为了便于管理和控制,则需要给服务器IPMI带外管理添加较多的用户,这就需要对较多的服务器检查所对应的IPMI用…...

51单片机中reg52.h与regx52.h在进行位操作时的不同

reg52.h中不能使用例如 P2_0;这样的定义 而只能使用 P2^0;这样的定义 但是都不可以对位进行直接赋值操作; 而 regx52.h中可以使用 P2_0和P2^0;但是只有使用下划线的才可以对位进行赋值操作 例如P2_0 1; 但不可以是P2^0 1; 在 C 语言中,…...

Apollo Cyber 学习笔记

目录 0 Introduction What Why Advantage 1 Example 2 Concept 3 Flow Chart 4 Module 4.1 Transport 4.1.1 Share Memory 4.1.1.1 Segment 4.1.1.1.1 State 4.1.1.1.2 Block 4.1.1.1.3 Common 4.1.1.2 Notifier 4.1.1.2.1 ConditionNotifier 4.1.1.2.2 Multi…...

【Electron入门】进程环境和隔离

目录 一、主进程和渲染进程 1、主进程(main) 2、渲染进程(renderer) 二、预加载脚本 三、沙盒化 为单个进程禁用沙盒 全局启用沙盒 四、环境访问权限控制:contextIsolation和nodeIntegration 1、contextIsola…...

拉链表介绍

拉链表 是处理 缓慢变化维(SCD) 的一种常用方法,特别适用于需要保留历史记录的场景。以下是拉链表的详细说明及实现方法: 1. 什么是拉链表? 拉链表是一种用于记录维度数据历史变化的表结构,通过 开始时间 …...

Spring Boot 日志配置与常见问题解析(详解)

目录 Spring Boot 日志配置与常见问题解析引言什么是日志?日志的重要性日志使用打印日志 日志框架介绍日志格式的说明⽇志级别日志级别的分类日志级别的使用 Spring Boot 日志配置1. 设置日志级别和格式2. 配置日志收集器3. 查看和分析日志4.日志的持久化5.设置日志…...

-bash: lsof: command not found

一、问题说明 执行如下命令时报错: # lsof |grep deleted > deleted_file -bash: lsof: command not found二、处理方法 # yum -y install lsof安装完成后可成功执行上面的命令。...

PC 端连接安卓手机恢复各类数据:安装、操作步骤与实用指南

软件介绍 这款用于恢复安卓手机数据的软件,虽运行在 PC 端,却专为安卓手机数据恢复打造,使用时得用数据线把手机和电脑连接起来。它的功能相当强大,能帮你找回安卓手机里已删除的短信、联系人、通话记录、文档,还有照…...

ES、OAS、ERP、电子政务、企业信息化(高软35)

系列文章目录 ES、OAS、ERP、电子政务、企业信息化 文章目录 系列文章目录前言一、专家系统(ES)二、办公自动化系统(OAS)三、企业资源规划(ERP)四、典型信息系统架构模型1.政府信息化和电子政务2.企业信息…...

android智能指针android::sp使用介绍

android::sp 是 Android 中的智能指针(Smart Pointer)的实现,用于管理对象的生命周期,避免手动管理内存泄漏等问题。它是 Android libutils 库中重要的一部分,常用于管理继承自 android::RefBase 的对象。 与标准库中…...

推荐一款最新开源,基于AI人工智能UI自动化测试工具!支持自然语言编写脚本!

随着互联网技术的飞速发展,Web应用越来越普及,前端页面也越来越复杂。为了确保产品质量,UI自动化测试成为了开发过程中不可或缺的一环。然而,传统的UI自动化测试工具往往存在学习成本高、维护困难等问题。特别是UI 自动化脚本里往…...

DeepSeek05-大模型WebUI

一、说明: 将DeepSeek部署到前台Web界面的方法主要有以下几种推荐方案,涵盖开源工具、第三方客户端及特定场景适配方案: Open WebUIChatbox AICherry StudioSillyTavern 二、Open WebUI 安装配置教程 特点:Open WebUI 是一个开…...

自然语言处理NLP入门 -- 第八节OpenAI GPT 在 NLP 任务中的应用

在前面的学习中,我们已经了解了如何使用一些经典的方法和模型来处理自然语言任务,如文本分类、命名实体识别等。但当我们需要更强的语言生成能力时,往往会求助于更先进的预训练语言模型。OpenAI 旗下的 GPT 系列模型(如 GPT-3、GP…...

FFmpeg av_read_frame 和iOS系统提供的 AVAudioRecorder 实现音频录制的区别

1. 第一种方式:使用 FFmpeg 的 av_read_frame 特点 底层实现:基于 FFmpeg,这是一个强大的多媒体处理库,直接操作音频流。灵活性:非常灵活,可以处理多种音频格式、编解码器和输入设备。复杂性:需要手动管理音频流、数据包(AVPacket)、内存释放等,代码复杂度较高。跨平…...

【区块链】深入理解区块链中的 Gas 机制

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 深入理解区块链中的 Gas 机制一、Gas 的基本概念1.1 为什么需要 Gas&#xff1f…...

2020 年英语(一)考研真题 笔记(更新中)

Section I Use of English(完型填空) 原题 Directions:Read the following text. Choose the best word (s) for each numbered blank and mark A, B, C or D on the ANSWER SHEET. (10 points) Even if families are less likely to si…...

mamba_ssm和causal-conv1d详细安装教程

1.前言 Mamba是近年来在深度学习领域出现的一种新型结构,特别是在处理长序列数据方面表现优异。在本文中,我将介绍如何在 Linux 系统上安装并配置 mamba_ssm 虚拟环境。由于官方指定mamba_ssm适用于 PyTorch 版本高于 1.12 且 CUDA 版本大于 11.6 的环境…...

leetcode-442.数组中重复的数据

leetcode-442.数组中重复的数据 文章目录 leetcode-442.数组中重复的数据1.题目描述:数组中重复的数据2.第一次代码提交:(不符合仅使用常量额外空间)3.最终代码提交:只使用常数额外空间、时间复杂度为 O(n) 的做法,即“标记法” 1…...

UniApp 按钮组件 open-type 属性详解:功能、场景与平台差异

文章目录 引言一、open-type 基础概念1.1 核心作用1.2 通用使用模板 二、主流 open-type 值详解2.1 contact - 客服会话功能说明平台支持代码示例 2.2 share - 内容转发功能说明平台支持注意事项 2.3 getUserInfo - 获取用户信息功能说明平台支持代码示例 2.4 getPhoneNumber -…...

Android13修改多媒体默认音量

干就完了! 设置音量为最大音量,修改如下: /framework/base/media/java/android/media/AudioSystem.java/** hide */public static int[] DEFAULT_STREAM_VOLUME new int[] {4, // STREAM_VOICE_CALL7, // STREAM_SYSTEM5, // STREAM_RING-5, // STREAM_MUSIC15, // STREAM…...

【银河麒麟高级服务器操作系统】服务器测试业务耗时问题分析及处理全流程分享

更多银河麒麟操作系统产品及技术讨论,欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer…...

HTTP 请求时传递多部分表单数据

HTTP 请求时传递多部分表单数据(multipart/form-data) --data-raw $------demo11111\r\nContent-Disposition: form-data; name"Filedata"; filename"截屏2025-02-27 15.45.46.png"\r\nContent-Type: image/png\r\n\r\n\r\n------d…...

【Python环境】配置极简描述

241220 241220 241220 Python环境配置 下载Python 稳定版本:Stable Releases【3.12.3】 下载地址:Python Releases for Windows | Python.org. 配环境 注意勾上Add Python 3.x to PATH,然后点“Install Now”即可完成安装。 配置完成&…...

1. HTTP 数据请求

相关资源: 图片素材📎图片素材.zip 接口文档 1. HTTP 数据请求 什么是HTTP数据请求: (鸿蒙)应用软件可以通过(鸿蒙)系统内置的 http 模块 和 Axios,通过 HTTP 协议和服务器进行通讯 学习核心Http请求技术: Http模块 - 属于鸿…...

基于深度学习+NLP豆瓣电影数据爬虫可视化推荐系统

博主介绍:资深开发工程师,从事互联网行业多年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有…...

Apache Spark中的依赖关系与任务调度机制解析

Apache Spark中的依赖关系与任务调度机制解析 在Spark的分布式计算框架中,RDD(弹性分布式数据集)的依赖关系是理解任务调度、性能优化及容错机制的关键。宽依赖(Wide Dependency)与窄依赖(Narrow Dependency)作为两种核心依赖类型,直接影响Stage划分、Shuffle操作及容…...

SEO炼金术(4)| Next.js SEO 全攻略

在上一篇文章 SEO炼金术(3)| 深入解析 SEO 关键要素 中,我们深入解析了 SEO 关键要素,包括 meta 标签、robots.txt、canonical、sitemap.xml 和 hreflang,并探讨了它们在搜索引擎优化(SEO)中的作…...

DeepSeek开源周,第五弹再次来袭,3FS

Fire-Flyer 文件系统(3FS)总结: 一、核心特点 3FS 是一个专为 AI 训练和推理工作负载设计的高性能分布式文件系统,利用现代 SSD 和 RDMA 网络,提供共享存储层,简化分布式应用开发。其主要特点包括&#xf…...

conda怎么迁移之前下载的环境包,把python从3.9升级到3.10

克隆旧环境(保留旧环境作为备份) conda create -n cloned_env --clone old_env 在克隆环境中直接升级 Python conda activate cloned_env conda install python3.10 升级 Python 后出现 所有包导入失败 的问题,通常是因为依赖包与新 Pyth…...

一周一个Unity小游戏2D反弹球游戏 - 移动的弹板(鼠标版)

前言 本文将实现控制弹板移动,通过Unity的New Input System,可以支持鼠标移动弹板跟随移动,触控点击跟随移动,并且当弹板移动到边界时,弹板不会移动超过边界之外。 创建移动相关的InputAction 项目模版创建的时候默认会…...

wordpress子分类调用父分类名称和链接的3种方法

专为导航而生&#xff0c;在wordpress模板制作过程中常常会在做breadcrumbs导航时会用到&#xff0c;子分类调用父分类的名称和链接&#xff0c;下面这段简洁的代码&#xff0c;可以完美解决这个问题。 <?php echo get_category_parents( $cat, true, &raquo; ); ?…...

使用mermaid查看cursor程序生成的流程图

一、得到cursor生成的流程图文本 cursor写的程序正常运行后&#xff0c;在对话框输入框中输入诸如“请生成扫雷的代码流程图”&#xff0c;然后cursor就把流程图给生成了&#xff0c;但是看到的还是文本的样子&#xff0c;保留这部分内容待用 二、注册一个Mermaid绘图账号 …...

GC垃圾回收介绍及GC算法详解

目录 引言 GC的作用域 什么是垃圾回收&#xff1f; 常见的GC算法 1.引用计数法 2.复制算法 3.标记清除 4.标记整理 小总结 5.分代收集算法 ps:可达性分析算法&#xff1f; 可达性分析的作用 可达性分析与垃圾回收算法的关系 结论 引言 在编程世界中&#xff0c;…...

设计后端返回给前端的返回体

目录 1、为什么要设计返回体&#xff1f; 2、返回体包含哪些内容&#xff08;如何设计&#xff09;&#xff1f; 举例 3、总结 1、为什么要设计返回体&#xff1f; 在设计后端返回给前端的返回体时&#xff0c;通常需要遵循一定的规范&#xff0c;以确保前后端交互的清晰性…...

Pytorch为什么 nn.CrossEntropyLoss = LogSoftmax + nn.NLLLoss?

为什么 nn.CrossEntropyLoss LogSoftmax nn.NLLLoss&#xff1f; 在使用 PyTorch 时&#xff0c;我们经常听说 nn.CrossEntropyLoss 是 LogSoftmax 和 nn.NLLLoss 的组合。这句话听起来简单&#xff0c;但背后到底是怎么回事&#xff1f;为什么这两个分开的功能加起来就等于…...

Linux实操——在服务器上直接从百度网盘下载(/上传)文件

Linux Linux实操——在服务器上直接从百度网盘下载&#xff08;/上传&#xff09;文件 文章目录 Linux前言一、下载并安装bypy工具二、认证并授权网盘账号三、将所需文件转移至目的文件夹下四、下载文件五、上传文件六、更换绑定的百度云盘账户 前言 最近收到一批很大的数据&…...

【无标题】ABP更换MySql数据库

原因&#xff1a;ABP默认使用的数据库是sqlServer&#xff0c;本地没有安装sqlServer&#xff0c;安装的是mysql&#xff0c;需要更换数据库 ABP版本&#xff1a;9.0 此处以官网TodoApp项目为例 打开EntityFrameworkCore程序集&#xff0c;可以看到默认使用的是sqlServer&…...

nuxt常用组件库html-validator应用解析

html-validator 主要用于自动验证nuxt服务器呈现的HTML(SSR和SSG)&#xff0c;以检测可能导致水合错误的HTML常见问题&#xff0c;有助于减少水合错误&#xff0c;检测常见的可访问性错误。 安装 npx nuxilatest module add html-validator配置 若自动更新nuxt.config.ts配置文…...

思维训练(算法+技巧)

1.深度优先搜索&#xff1a;暴力求解&#xff0c;适合判断能不能走出迷宫 利用递归&#xff0c;有一个check【】数组来检查该节点是否经过 for循环该节点的邻接节点&#xff08;存在且没被访问&#xff09;&#xff0c;递归DFS&#xff08;该节点的某个邻接节点&#xff09; D…...

AIGC(生成式AI)试用 25 -- 跟着清华教程学习 - DeepSeek+DeepResearch让科研像聊天一样简单

目标&#xff1a;继续学习&#xff0c;以DeepSeek为主 个人理解&#xff1a; - 模型结合&#xff0c;充分发挥各模型的优势 - 关注应用&#xff0c;弱化理论&#xff0c;了解就好 - 多模态&#xff1a;多模态&#xff08;Multimodality&#xff09;是指结合多种不同类型的数据…...

Solr中得Core和Collection的作用和关系

Solr中得Core和Collection的作用和关系 一&#xff0c; 总结 在Apache Solr中&#xff0c;Core和Collection 是两个核心概念&#xff0c;他们分别用于单机模式和分布式模式&#xff08;SolrCloud&#xff09;中&#xff0c;用于管理和组织数据。 二&#xff0c;Core 定义&am…...

温湿度监控设备融入智慧物联网

当医院的温湿度监控设备融入智慧物联网&#xff0c;将会带来许多新的体验&#xff0c;可以帮助医院温湿度监控设备智能化管理&#xff0c;实现设备之间的互联互通&#xff0c;方便医院对温湿度数据进行统一管理和分析。 添加智慧物联网技术&#xff0c;实现对医院温湿度的实时…...

软件测试的七大误区

随着软件测试对提高软件质量重要性的不断提高&#xff0c;软件测试也不断受到重视。但是&#xff0c;国内软件测试过程的不规范&#xff0c;重视开发和轻视测试的现象依旧存在。因此&#xff0c;对于软件测试的重要性、测试方法和测试过程等方面都存在很多不恰当的认识&#xf…...

Mac 版 本地部署deepseek ➕ RAGflow 知识库搭建流程分享(附问题解决方法)

安装&#xff1a; 1、首先按照此视频的流程一步一步进行安装&#xff1a;(macos版&#xff09;ragflowdeepseek 私域知识库搭建流程分享_哔哩哔哩_bilibili 2、RAGflow 官网文档指南&#xff1a;https://ragflow.io 3、RAGflow 下载地址&#xff1a;https://github.com/infi…...

标记符号“<”和“>”符号被称为“尖括号”或“角括号”

你提到的“<”和“>”符号被称为“尖括号”或“角括号”。它们常用于编程语言中表示类型参数&#xff08;如泛型&#xff09;、HTML标签&#xff08;如<div>&#xff09;、数学中的不等式&#xff08;如< 5&#xff09;等。 好的&#xff0c;我来用通俗的方式解…...

DMA发送全部历史记录数据到串口

背景 博主参与的项目中&#xff0c;有个读取全部历史记录的功能&#xff0c;如果下位机在主程序中将全部历史记录单纯地通过串口传输会比较占用cpu资源&#xff0c;影响主程序中别的功能。最后商量得出以下实现方案&#xff1a; 定义两个发送缓冲区DMATxbuf1和DMATxbuf2&…...

js基础案例

1.弹出警告框&#xff0c;显示Hello JS 2.在页面输出内容&#xff08;内容在body标签里面&#xff09; 3.在控制台输出内容 4.js代码是自上而下执行 5.将js代码编写到标签的onclick属性中&#xff0c;当点击时&#xff0c;js代码才会执行 6.将js写到超链接的href属性中&#xf…...

机器学习之集成学习思维导图

学习笔记—机器学习-集成学习思维导图 20250227&#xff0c;以后复习看&#xff08;周老师的集成学习&#xff09; PS&#xff1a;图片看不清&#xff0c;可以下载下来看。 往期思维导图&#xff1a; 机器学习之集成学习Bagging&#xff08;随机深林、VR-树、极端随机树&…...