深入解析 SMB 相关命令:smbmap、smbclient、netexec 等工具的使用指南
Server Message Block(SMB)协议是广泛应用于文件共享、打印机共享和进程间通信的网络协议,尤其在 Windows 环境中常见。渗透测试和网络安全审计中,SMB 是一个重要的攻击面,相关工具如 smbmap
、smbclient
和 netexec
提供了强大的功能来枚举、访问和利用 SMB 共享。本文将详细介绍这些工具的常见命令、用法和实际应用场景,帮助安全从业者和系统管理员更好地理解和使用它们。
1. SMB 协议简介
SMB 是一种客户端-服务器协议,用于在网络中共享资源(如文件、打印机)。它最初由 IBM 开发,后由 Microsoft 广泛采用,支持 NTLM 和 Kerberos 认证,运行在 TCP 端口 139 或 445 上。SMB 的常见版本包括 SMBv1、SMBv2 和 SMBv3,其中 SMBv1 因安全漏洞(如 EternalBlue)已被许多现代系统禁用。
在渗透测试中,SMB 枚举的目标包括:
- 发现共享目录及其权限。
- 提取用户、组或密码策略信息。
- 执行远程命令或上传/下载文件。
- 利用 SMB 漏洞(如 SMBGhost、SMBleed)。
以下将逐一介绍 smbmap
、smbclient
和 netexec
的详细用法,并补充其他相关工具的简单介绍。
2. smbmap:SMB 共享枚举利器
smbmap
是一个专注于 SMB 共享枚举的工具,基于 Python 的 Impacket 库开发,广泛用于渗透测试。它可以列出共享目录、检查权限、上传/下载文件,甚至执行远程命令。以下是 smbmap
的常见命令及其用法。
2.1 安装与依赖
smbmap
通常预装在 Kali Linux 中。若需手动安装,可通过 GitHub 仓库获取:
git clone https://github.com/ShawnDEvans/smbmap.git
cd smbmap
pip install -r requirements.txt
依赖包括 Impacket、PyASN.1 和 PyCrypto。
2.2 常用命令
2.2.1 列出共享目录
用于发现目标主机上的 SMB 共享及其权限。
smbmap -H <目标IP> -u <用户名> -p <密码>
-H
: 指定目标 IP 或主机名。-u
: 用户名(为空则尝试匿名登录)。-p
: 密码(支持明文或 NTLM 哈希,格式为LMHASH:NTHASH
)。- 示例:
输出示例:smbmap -H 192.168.1.100 -u guest -p ""
[+] IP: 192.168.1.100:445 Name: server.lanDisk Permissions Comment---- ----------- -------ADMIN$ NO ACCESS Remote AdminC$ NO ACCESS Default shareIPC$ NO ACCESS Remote IPCPublic READ ONLY Public Share
2.2.2 匿名登录
尝试使用空凭据访问共享:
smbmap -H <目标IP> -u "" -p ""
2.2.3 递归列出目录内容
列出指定共享中的文件和子目录:
smbmap -H <目标IP> -u <用户名> -p <密码> -R <共享名>
-R
: 递归列出指定共享的内容。- 示例:
输出示例:smbmap -H 192.168.1.100 -u admin -p password123 -R Public
[+] IP: 192.168.1.100:445 Name: server.lanDisk: Publicdr--r--r-- 0 Mon Jan 10 12:00:00 2023 Documents-r--r--r-- 20480 Mon Jan 10 12:01:00 2023 readme.txt
2.2.4 上传文件
将本地文件上传到目标共享:
smbmap -H <目标IP> -u <用户名> -p <密码> --upload <本地文件> <共享名/目标路径>
- 示例:
smbmap -H 192.168.1.100 -u admin -p password123 --upload /tmp/payload.exe Public/payload.exe
2.2.5 下载文件
从共享下载文件到本地:
smbmap -H <目标IP> -u <用户名> -p <密码> --download <共享名/文件路径>
- 示例:
smbmap -H 192.168.1.100 -u admin -p password123 --download Public/secret.txt
2.2.6 执行远程命令
在目标主机上执行命令(需要管理员权限):
smbmap -H <目标IP> -u <用户名> -p <密码> -x <命令>
- 示例:
smbmap -H 192.168.1.100 -u admin -p password123 -x "whoami"
2.2.7 扫描多个主机
扫描 IP 范围或主机列表:
smbmap -i <IP范围> -u <用户名> -p <密码>
-i
: 支持 CIDR 格式(如192.168.1.0/24
)。- 示例:
smbmap -i 192.168.1.0/24 -u guest -p ""
2.2.8 检查可写共享
列出具有写权限的共享:
smbmap -H <目标IP> -u <用户名> -p <密码> --writable
2.2.9 指定域
在域环境中使用:
smbmap -H <目标IP> -u <用户名> -p <密码> -d <域名>
-d
: 指定域(如corp.local
)。- 示例:
smbmap -H 192.168.1.100 -u user -p password123 -d corp
2.3 注意事项
- 权限:某些操作(如命令执行)需要管理员权限。
- NTLM 限制:
smbmap
仅支持 NTLM 认证,不支持 Kerberos。 - 合法性:仅在授权范围内使用,未经许可的扫描可能违法。
3. smbclient:类 FTP 的 SMB 客户端
smbclient
是 Samba 套件的一部分,提供类似 FTP 的命令行界面,用于访问和操作 SMB 共享。它支持文件传输、目录浏览和共享枚举,适合 Linux/Unix 环境。
3.1 安装
smbclient
通常预装在 Linux 发行版中,可通过包管理器安装:
sudo apt install smbclient
3.2 常用命令
3.2.1 列出共享
显示目标主机上的共享列表:
smbclient -L <目标IP> -U <用户名>
-L
: 列出共享。-U
: 指定用户名(格式为用户名%密码
,若为空则匿名)。- 示例:
输出示例:smbclient -L 192.168.1.100 -U guest%""
Sharename Type Comment --------- ---- ------- Public Disk Public Share IPC$ IPC Remote IPC ADMIN$ Disk Remote Admin C$ Disk Default share
3.2.2 匿名访问
尝试匿名登录:
smbclient -L <目标IP> -N
-N
: 无密码(匿名)。
3.2.3 连接到共享
以交互模式连接到特定共享:
smbclient //<目标IP>/<共享名> -U <用户名>
- 示例:
进入交互模式后,提示符为smbclient //192.168.1.100/Public -U admin%password123
smb: \>
,支持以下命令:ls
: 列出目录内容。get <文件>
: 下载文件。put <文件>
: 上传文件。cd <目录>
: 切换目录。exit
: 退出。
3.2.4 非交互模式
直接执行命令:
smbclient //<目标IP>/<共享名> -U <用户名> -c "ls; get file.txt"
-c
: 指定要执行的命令(用分号分隔)。- 示例:
smbclient //192.168.1.100/Public -U admin%password123 -c "ls; get readme.txt"
3.2.5 递归下载
递归下载整个共享内容:
smbclient //<目标IP>/<共享名> -U <用户名> -c "recurse; prompt OFF; mget *"
recurse
: 启用递归。prompt OFF
: 禁用交互提示。mget *
: 下载所有文件。
3.2.6 指定域
在域环境中使用:
smbclient -L <目标IP> -U <域名>\<用户名>%<密码>
- 示例:
smbclient -L 192.168.1.100 -U corp\admin%password123
3.2.7 Kerberos 认证
在支持 Kerberos 的环境中:
smbclient //<目标IP>/<共享名> -k
-k
: 使用 Kerberos 认证(需配置 Kerberos 票据)。
3.3 注意事项
- 交互性:
smbclient
的交互模式适合手动操作,非交互模式适合脚本。 - Kerberos 支持:在 Active Directory 环境中,
-k
选项非常有用。 - 性能:递归下载可能较慢,建议结合其他工具(如
netexec
)。
4. netexec:多协议自动化渗透测试工具
netexec
(前身为 CrackMapExec)是一个强大的网络服务利用工具,支持 SMB、WinRM、RDP 等协议。它以自动化和批量操作为特色,适合快速枚举和测试大型网络。
4.1 安装
通过 GitHub 安装:
pipx install git+https://github.com/Pennyw0rth/NetExec
或使用 Docker:
docker run -it blacklanternsecurity/netexec
4.2 常用命令
4.2.1 基本扫描
扫描目标主机并获取基本信息(如主机名、域、OS 版本、SMB 版本):
netexec smb <目标IP>
- 示例:
输出示例:netexec smb 192.168.1.100
SMB 192.168.1.100 445 SERVER [*] Windows 10 Build 19041 (name:SERVER) (domain:corp.local) (signing:False) (SMBv1:True)
4.2.2 列出共享
枚举共享及其权限:
netexec smb <目标IP> -u <用户名> -p <密码> --shares
--shares
: 列出共享。- 示例:
netexec smb 192.168.1.100 -u admin -p password123 --shares
4.2.3 匿名访问
尝试匿名登录:
netexec smb <目标IP> -u "" -p "" --shares
4.2.4 执行命令
在目标主机上执行命令(需要管理员权限):
netexec smb <目标IP> -u <用户名> -p <密码> -x <命令>
-x
: 执行 cmd 命令。- 示例:
netexec smb 192.168.1.100 -u admin -p password123 -x "whoami"
4.2.5 执行 PowerShell 命令
执行 PowerShell 命令:
netexec smb <目标IP> -u <用户名> -p <密码> -X <PowerShell命令>
-X
: 执行 PowerShell 命令。- 示例:
netexec smb 192.168.1.100 -u admin -p password123 -X '$PSVersionTable'
4.2.6 递归下载共享内容
使用 spider_plus
模块递归下载共享内容:
netexec smb <目标IP> -u <用户名> -p <密码> -M spider_plus -o READ_ONLY=False
-M spider_plus
: 启用递归下载模块。-o READ_ONLY=False
: 包括可写共享。
4.2.7 用户枚举
枚举域用户:
netexec smb <目标IP> -u <用户名> -p <密码> --users
4.2.8 密码策略
获取域密码策略:
netexec smb <目标IP> -u <用户名> -p <密码> --pass-pol
4.2.9 Kerberos 认证
在 Kerberos 环境中使用:
netexec smb <目标IP> -k
-k
: 使用 Kerberos 认证。
4.2.10 批量扫描
扫描多个主机:
netexec smb <IP范围> -u <用户名> -p <密码>
- 示例:
netexec smb 192.168.1.0/24 -u guest -p ""
4.3 注意事项
- 自动化:
netexec
适合快速扫描和自动化任务,但可能产生较多网络流量。 - 权限:命令执行和高级操作需要管理员权限。
- 模块化:支持丰富的模块(如
zerologon
、petitpotam
),可通过-M
参数调用。
5. 其他相关工具简介
5.1 enum4linux
enum4linux
是一个 Perl 脚本,封装了 smbclient
、rpcclient
等工具,用于快速枚举 SMB 环境中的用户、组、共享和密码策略。
- 常用命令:
enum4linux -a <目标IP>
-a
: 执行所有枚举任务。
- 适用场景:快速提取域信息,尤其在允许空会话的系统中。
5.2 Impacket
Impacket 是一个 Python 库,包含多个 SMB 相关脚本(如 smbclient.py
、psexec.py
)。
- 示例:使用
smbclient.py
连接共享:python3 smbclient.py <域>/<用户名>:<密码>@<目标IP>
- 优势:支持 Kerberos 认证,适合复杂环境。
5.3 nmap SMB 脚本
Nmap 提供多个 SMB 相关脚本,用于漏洞扫描和共享枚举。
- 示例:枚举共享:
nmap --script smb-enum-shares -p 139,445 <目标IP>
- 示例:扫描 SMB 漏洞:
nmap --script smb-vuln* -p 139,445 <目标IP>
6. 实际应用场景
6.1 场景 1:发现可写共享
- 使用
smbmap
扫描共享:smbmap -H 192.168.1.100 -u guest -p "" --writable
- 发现可写共享
Public
,上传测试文件:smbmap -H 192.168.1.100 -u guest -p "" --upload /tmp/test.txt Public/test.txt
- 验证文件是否存在:
smbclient //192.168.1.100/Public -U guest%"" -c "ls"
6.2 场景 2:批量枚举域用户
- 使用
netexec
扫描域内主机:netexec smb 192.168.1.0/24 -u admin -p password123 --users
- 提取用户列表,结合其他工具(如
hydra
)进行密码喷洒。
6.3 场景 3:利用 SMB 漏洞
- 使用 Nmap 检测 SMB 漏洞:
nmap --script smb-vuln* -p 445 192.168.1.100
- 若发现 SMBGhost 漏洞,使用
netexec
测试:netexec smb 192.168.1.100 -u "" -p "" -M smbghost
7. 总结
smbmap
、smbclient
和 netexec
是 SMB 枚举和利用的三大核心工具,各自有独特优势:
smbmap
:专注于共享枚举和文件操作,适合快速权限检查。smbclient
:提供类 FTP 界面,适合手动操作和脚本化。netexec
:自动化程度高,适合批量扫描和复杂任务。
通过结合这些工具,安全从业者可以高效地发现 SMB 相关的安全问题,同时系统管理员可以利用它们审计和加固网络环境。在实际操作中,需根据目标环境选择合适的工具和认证方式(如 NTLM 或 Kerberos),并始终遵守法律和道德规范。
相关文章:
深入解析 SMB 相关命令:smbmap、smbclient、netexec 等工具的使用指南
Server Message Block(SMB)协议是广泛应用于文件共享、打印机共享和进程间通信的网络协议,尤其在 Windows 环境中常见。渗透测试和网络安全审计中,SMB 是一个重要的攻击面,相关工具如 smbmap、smbclient 和 netexec 提…...
伊克罗德信息亮相亚马逊云科技合作伙伴峰会,以ECRobot 智能云迁移助手在GenAI Tech Game比赛勇夺金牌!
十年同行,共赴盛会:伊克罗德信息亮相2025亚马逊云科技Partner Summit 2025亚马逊云科技合作伙伴峰会(AWS Partner Summit)于乌镇盛大启幕,这场全球云计算领域的顶级盛会汇聚了亚马逊云科技全球核心合作伙伴、行业领袖与…...
【蓝桥杯】P12165 [蓝桥杯 2025 省 C/Java A] 最短距离
最短距离 题目描述 在一条一维的直线上,存在着 n n n 台显示器和 n n n 个电源插座。老师给小蓝布置了个任务:负责将每台显示器通过电源线与一个插座相连接(每个插座最多只能给一台显示器供电);同时,老…...
深入浅出Sentinel:分布式系统的流量防卫兵
引言 在当今的微服务架构和分布式系统中,服务间的依赖关系错综复杂,一个服务的故障可能会像多米诺骨牌一样引发整个系统的崩溃。如何有效地保护系统免受突发流量、不稳定依赖服务的影响,成为每个架构师和开发者必须面对的挑战。今天…...
vite+vue2+elementui构建之 vite.config.js
webpack版本太低,构建依赖太多,头大。 各种查阅资料,弄了一份直通构建vite构建elementUi核心文件, 构建基于开源若依vue2vue3版本改造,感谢开源,感谢若依。 package.json 地址 vitevue2elementui构建之…...
【Pandas】pandas DataFrame radd
Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于执行 DataFrame 与另一个对象(如 DataFrame、Series 或标量)的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于执行 DataFrame 与另一个对象&…...
Java 后端开发环境安装
Java环境安装 1. 安装程序 Java1.8下载,由于官网下载需要登录,比较麻烦,所以我将安装文件放到了我的资源中,大家通过资源直接下载即可 jdk-8u351-windows-x64.exe 大家根据自己的电脑的配置选择适当的版本 然后一路下一步 这里…...
Azure Data Factory ETL设计与调度最佳实践
一、引言 在Azure Data Factory (ADF) 中,调度和设计ETL(抽取、转换、加载)过程需要综合考量多方面因素,以确保数据处理高效、可扩展、可靠且易于维护。以下将详细介绍相关关键考虑因素、最佳实践,并辅以具体示例说明…...
【Mybatis】MyBatisPlus的saveBatch真的是批量插入吗?深度解析与性能优化
前言 在使用MyBatis-Plus进行批量数据插入时,许多开发者会发现:即使调用saveBatch方法,数据库仍会产生大量INSERT语句。本文将深入源码揭示背后的真相,并提供3种性能优化方案,让你的批量插入速度提升10倍!…...
图像预处理-图像亮度变换
一.亮度变换 首先有两个关联的说法: 亮度调整:像素强度整体变高或者变低。 对比度调整:暗处像素强度变低,亮处像素强度变高,从而拉大中间某个区域范围的显示精度。 opencv中操作这两种变换的公式为: 对比…...
基于AI应用创业IDEA:使用百度搜索开放平台的MCP广场智能推荐MCPServices服务
基于AI应用创业IDEA:使用百度搜索开放平台的MCP广场智能推荐MCPServices服务 在当今快速发展的技术时代,人工智能(AI)已经成为推动各行各业创新的关键力量。特别是在创业领域,AI技术不仅能够帮助提升产品性能…...
URP-利用矩阵在Shader中实现物体的平移和缩放
一、平移 方法一: v.positionOS.xyz _Translate.xyz; 方法二: 利用矩阵实现平移: 二、缩放 方法一: v.positionOS.xyz * _Scale.xyz*_Scale.w; _Scale.w实现全局缩放 方法二: Shader"unity/Translation"…...
跟着尚硅谷学vue-day5
计算属性和watch监视 一.姓名案例 1.姓名案例-插值语法 <div id"root">姓:<input type"text" value"张" v-model"firstname"><br/><br/>名:<input type"text" value&q…...
猫咪如厕检测与分类识别系统系列【十三】猫咪进出事件逻辑及日志优化【下】
前情提要 家里养了三只猫咪,其中一只布偶猫经常出入厕所。但因为平时忙于学业,没法时刻关注牠的行为。我知道猫咪的如厕频率和时长与健康状况密切相关,频繁如厕可能是泌尿问题,停留过久也可能是便秘或不适。为了更科学地了解牠的如…...
【Java学习笔记】冒泡排序
冒泡排序 思想:经过一轮遍历比较,把最大的放在数组的末尾 int[] a {3, 2, 1}; for( int i 0; i < a.length-1; i){for( int j 0; j < a.length-1-i; j){if(a[j] > a[j1]){int temp a[j];a[j] a[j1];a[j1] temp;}} } for( int i 0; i &…...
【含文档+PPT+源码】基于微信小程序的校园快递平台
项目介绍 本课程演示的是一款基于微信小程序的校园快递平台,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.该项目附带…...
Vue3 自定义指令完全指南
Vue3 自定义指令完全指南 目录 基本概念指令注册方式常用应用场景注意事项 基本概念 在Vue3中,自定义指令是用于直接操作DOM的重要工具。相比Vue2,Vue3的指令系统进行了优化和简化。 生命周期钩子 钩子名称对应Vue2名称触发时机createdbind元素属性…...
神经辐射场(NeRF)技术解析:3D重建与虚拟世界的未来
神经辐射场(NeRF)技术解析:3D重建与虚拟世界的未来 ——从算法突破到元宇宙基础设施的演进之路 摘要 本文通过算法演进图谱、训练流程解析、PyTorch代码实战及产业应用洞察,构建从学术创新到工程落地的完整技术框架。实验数据显…...
050_基于springboot的音乐网站
一、系统架构 前端:vue | element-ui | html | jquery | css | ajax 后端:springboot | mybatis 环境:jdk1.8 | mysql | maven | nodejs | idea 二、代码及数据 三、功能介绍 01. web端-注册 02. web端-登录 03. web…...
Django之旅:第七节--模版继承
定义母版—new.html <!DOCTYPE html> <html lang"en"><head></head><body><div>{% block contents %}{% endblock %}</div></body> </html> 继承母模板 {% extends new.html %} {% block contents %}&…...
Windows 10 上运行 Ollama 时遇到 llama runner process has terminated: exit status 2
在 Windows 10 上运行 Ollama 时遇到 llama runner process has terminated: exit status 2 错误,可能是由多种原因引起的。以下是逐步解决方案: 1. 检查 Ollama 服务状态 按 Win R 输入 services.msc,找到 Ollama 服务,确保其状…...
基于 Python(selenium) 的百度新闻定向爬虫:根据输入的关键词在百度新闻上进行搜索,并爬取新闻详情页的内容
该项目能够根据输入的关键词在百度新闻上进行搜索,并爬取新闻详情页的内容。 一、项目准备 1. 开发环境配置 操作系统:支持 Windows、macOS、Linux 等主流操作系统,本文以 Windows 为例进行说明。Python 版本:建议使用 Python 3.8 及以上版本,以确保代码的兼容性和性能。…...
YOLOX-PAI手部检测模型
YOLOX-PAI手部检测模型 # numpy > 1.20 from modelscope.pipelines import pipeline from modelscope.utils.constant import Tasksmodel_id iic/cv_yolox-pai_hand-detection hand_detection pipeline(Tasks.domain_specific_object_detection, modelmodel_id) output …...
速成GO访问sql,个人笔记
更多个人笔记:(仅供参考,非盈利) gitee: https://gitee.com/harryhack/it_note github: https://github.com/ZHLOVEYY/IT_note 本文是基于原生的库 database/sql进行初步学习 基于ORM等更多操作可以关注我…...
SkyWalking 安装与使用详细总结
SkyWalking 是一款开源的分布式应用性能监控(APM)系统,用于监控微服务、云原生应用、容器等。它支持服务跟踪、性能监控、日志分析和数据可视化。以下是 SkyWalking 的安装与使用详细步骤。 一、SkyWalking 安装 1. 下载 SkyWalking 访问 …...
产业观察:中国商飞2025.4.25
一.中国商飞简介 1.1 公司背景 中国商飞于 2008年5月11日 在上海成立,是实施国家大型飞机重大专项中大型客机项目的主体。公司由多家国有大型企业共同出资组建,包括国务院国资委、上海国盛集团、中航工业集团等。总部设在上海,拥有多个研发…...
【爬虫】DrissionPage-获取douyim用户下的视频
之前看过DrissionPage,觉得很厉害,比selenium简单,适合新手。因为盲目跟风逆向,今天看了一个DrissionPage案例直播,学习一下,真香哈。 DrissionPage官网:🛰️ 概述 | DrissionPage官…...
Kubernetes 节点 Not Ready 时 Pod 驱逐机制深度解析(下)
#作者:邓伟 文章目录 三、深度解析:源码逻辑与调优策略四、常见问题与排查五、最新动态与技术演进总结 三、深度解析:源码逻辑与调优策略 TaintManager 核心源码逻辑 (1)参数定义(kube-controller-manage…...
markdown自动标题序号,标题序号,目录处理
在vscode下有插件 markdown aheads markdown标题与目录处理插件。 使用方法:在vscode中 ctrlshiftp 输入 AHeads 选择功能。 包含以下功能: "AHeads:AddIndex": "添加标题序号" "AHeads:RemoveIndex": "移除标题…...
模式设计简介
设计模式简介 设计模式是软件开发中经过验证的最佳实践解决方案,它是针对特定问题的通用解决方案,能够帮助开发者提升代码的可维护性、可扩展性和复用性。设计模式并非具体的代码实现,而是一种解决问题的思路和方法论,它源于大量的实践经验总结,旨在解决软件开发过程中反…...
Linux字符设备驱动开发的详细步骤
1. 确定主设备号 手动指定:明确设备号时,使用register_chrdev_region()静态申请(需确保未被占用)。动态分配:通过alloc_chrdev_region()由内核自动分配主设备号(更灵活,推…...
融合注意力机制和BiGRU的电力领域发电量预测项目研究,并给出相关代码
大家好,我是微学AI,今天给大家介绍一下融合注意力机制和BiGRU的电力领域发电量预测项目研究,并给出相关代码。 文章目录 一、项目背景二、融合注意力机制和BiGRU的技术原理(一)双向门控循环单元(BiGRU&…...
基于 Netmiko 的网络设备自动化操作
学习目标 掌握 Netmiko 库的核心功能与使用场景。能够通过 Netmiko 连接多厂商设备并执行命令和配置。实现批量设备管理、配置备份与自动化巡检。掌握异常处理、日志记录与性能优化技巧。理解 Netmiko 在自动化运维体系中的角色。 1. Netmiko 简介 1.1 什么是 Netmiko Netmi…...
eclipse怎么导入junit4
JUnit 4 是 Java 编程语言里常用的单元测试框架,在 Eclipse 中导入 JUnit 4 可按以下步骤操作: 1. 新建或打开 Java 项目 如果你已经有一个 Java 项目,可直接打开它;若没有,就新建一个 Java 项目。操作步骤如下&…...
深入理解C语言函数之模拟实现strcpy()strcat()
文章目录 前言一、strcpy的模拟实现二、strcat的模拟实现总结 前言 前面我们用三种方法模拟实现了一下strlen,所以这篇文章模拟实现以下strcpy()strcat() 一、strcpy的模拟实现 首先我们去官网找到strcpy的用法和原…...
[mysql]窗口函数
目录 窗口函数: 为何要学习窗口函数,与mysql5.7实现语句对比 现在我们介绍一下窗口函数: 函数规则 1序号函数 2分布函数 3前后函数 5其他函数 总结 窗口函数: 首先数据库的迁移是非常慢的,大家学习新特性的时候要考虑自己公司的数据库版本是不是和自己学习的吻合 为何…...
IT人力外包定义-优势-服务流程介绍
IT人力外包:企业灵活用工的“技术人才蓄水池” 在数字化转型的浪潮中,企业对IT人才的需求日益增长,但招聘、培养和管理技术团队的成本和风险也随之攀升。此时,IT人力外包应运而生,成为企业高效获取技术资源的解决方案…...
Cancer Cell|scRNA-seq + scTCR + 空间多组学整合分析,揭示CD8⁺ T细胞在免疫治疗中的“双路径” | 临床问题的组学解答
Cancer Cell|scRNA-seq scTCR 空间多组学整合分析,揭示CD8⁺ T细胞在免疫治疗中的“双路径” 👋 欢迎关注我的生信学习专栏~ 如果觉得文章有帮助,别忘了点赞、关注、评论,一起学习 近日,《Cancer Cell》…...
数字人民币杠杆破局预付乱象 XBIT智能合约筑牢资金安全防线
在加密货币市场与实体经济加速融合的当下,数字人民币试点工作正以创新姿态突破传统金融边界。青岛、广州、厦门等地近期密集落地的数字人民币智能合约应用,为预付式消费领域资金监管难题提供了破局方案,而XBIT去中心化交易所平台凭借其技术优…...
React.memo 和 useMemo
现象 React 中,通常父组件的某个state发生改变,会引起父组件的重新渲染(和其他state的重新计算),从而会导致子组件的重新渲染(和其他非相关属性的重新计算) 问题一:如何避免因为某个…...
命令行指引的尝试
效果 步骤 首先初始化一个空的项目,然后安装一些依赖 npm init -y npm install inquirer execa chalk ora至于这些依赖是干嘛的,如下图所示: 然后再 package.json 中补充一个 bin 然后再根目录下新建一个 index.js , 其中的内容如下 #!/…...
《深入理解计算机系统》阅读笔记之第三章 程序的机器级表示
概述 历史观点 程序编码 数据格式 访问信息 操作数指示符 数据传送指令 压入和弹出栈数据 算术和逻辑操作 小结 本章没有细看,其中主要以C语言中的一些汇编等知识来做介绍。算是一种对C语言的相关底层知识的详细介绍吧。但是从原理上理解我觉得《编码》这本书更好理…...
解析excel中的图片
解析excel中的图片 前言一、pom依赖二、使用步骤1.示例数据2.代码如下(示例): 总结 前言 初始化数据是,需要将excel中的数据解析并插入数据库。 但是某几列存放的是图片,这时候怎么办呢。 主要解决的是:获…...
红队系列-网络安全知识锦囊-CTF(持续更新)
CTF CTF系列-AWD专题篇CTF-比赛培训基础1 CTF 介绍HTTP协议分析进阶001.CTF简介_宽字节注入高级 2018CTF——黑客大赛特训CTF-PWNPWNCTF竞赛中的主要题型之一了解CTF Capture The Flag 夺旗描述:# gets从标准输入设备读字符串函数#下面是对main函数中的汇编代码的解释:modifi…...
强化学习:基础理论与高级DQN算法及策略梯度基础
如果您想学习强化学习,我推荐David Sliver的讲座😊:RL Course by David Silver - Lecture 1: Introduction to Reinforcement Learning - YouTube 基础理论 马尔可夫决策过程(MDP) 1.MDP五元组定义 状态空间…...
如何修复宝可梦时时刻刻冒险无法正常工作
宝可梦的时时刻刻冒险模式是一项强大的功能,即使应用程序关闭,它也能追踪你的步行距离。它的工作原理是将你的步数与 iOS 上的 Apple Health 或 Android 上的 Google Fit 同步。它对于孵化宝可梦蛋和赚取好友糖果至关重要,但一旦它停止工作&a…...
RAG5个常见错误
向量数据库并非硬性规定 几乎互联网上所有关于RAG的教程都使用向量存储。如果你一直在搜索RAG相关内容,你就会明白我们在说什么。 基于向量的检索无疑是RAG成功的重要因素。向量嵌入非常适合映射文本的语义含义。它们也能很好地处理不同大小的文本。你的查询可能只…...
VuePress可以做什么?
VuePress 可以做什么 VuePress 是一个基于 Vue.js 的静态站点生成器,专注于文档和内容展示。它结合了 Markdown 的简洁性和 Vue 的灵活性,适合多种场景的开发需求。以下是 VuePress 的主要用途和功能: 1. 技术文档网站 VuePress 最初是为编写 Vue.js 官方文档而设计的,因…...
TDengine 数据缓存技术
简介 在现代物联网(IoT)和工业互联网(IIoT)应用中,数据的高效管理对系统性能和用户体验至关重要。为了应对高并发环境下的实时读写需求,TDengine 设计了一套完整的缓存机制,包括写缓存、读缓存…...
如何成功防护T级超大流量的DDoS攻击
防护T级超大流量的DDoS攻击需要综合技术、架构与运营策略的多层次防御体系。以下是基于最新技术实践和行业案例总结的关键防护策略: 一、流量清洗与分布式处理 部署流量清洗中心 T级攻击的核心防御依赖于专业的流量清洗技术。通过部署分布式流量清洗集群,…...