CS内网渗透 ----【内网渗透实战】PsExec vs Telnet:建立IPC通道实现横向移动与域控上线全解析
目录
1. 什么是 PsExec?
2. 什么是 Telnet?
3. PsExec 与 Telnet 的区别及优势
3.1 主要区别
3.2 内网渗透中的优势
4. 实际案例 —— 使用 PsExec 上线域控主机
案例背景
操作步骤
案例效果
5. 总结
利用 PsExec 建立 IPC 通道 —— IPC 的定义、关系与实际应用
1. 什么是 IPC?
1.1 IPC 的基本概念
1.2 IPC$ 共享的作用
2. PsExec 与 IPC 的关系
2.1 PsExec 的工作原理
2.2 关系说明
3. 内网渗透中的实际应用
3.1 实际使用场景
3.2 具体使用方法示例
示例 1:通过 PsExec 使用明文密码建立 IPC$ 连接
示例 2:利用 NTLM 哈希进行 PTH 攻击并建立 IPC$ 通道
3.3 应用优势总结
4. 总结
PsExec 在内网渗透中的应用,包括如何使用 PsExec、它与 Telnet 的区别以及 PsExec 在横向移动、上线域控主机等场景中的优势。最后附上一个企业中实际的案例,帮助你充分理解和掌握该工具的使用方法。
1. 什么是 PsExec?
PsExec 是 Microsoft Sysinternals 套件中的一款工具,允许在远程 Windows 系统上执行命令和启动交互式 shell。其主要特点包括:
- 无需安装客户端:只需在本地系统上运行 PsExec,即可在目标主机上远程执行命令。
- 利用 SMB 协议传输:通过 SMB 共享文件复制及执行远程命令,无需预先在目标主机上安装服务。
- 支持凭证传递:可指定域用户和密码,帮助实现远程认证。
- 支持输出重定向:可以将远程命令的输出直接显示在本地控制台上。
2. 什么是 Telnet?
Telnet 是一种较老的远程登录协议,允许用户通过命令行界面与远程系统交互。其特点如下:
- 基于明文传输:所有数据均未加密,存在安全隐患。
- 功能有限:主要用于建立基本的远程会话,不支持文件复制或更复杂的任务。
- 默认不启用:现代 Windows 系统默认不启用 Telnet 服务,且许多网络环境中会被防火墙阻断。
3. PsExec 与 Telnet 的区别及优势
3.1 主要区别
-
安全性:
- Telnet:明文传输,易被窃听,安全性低。
- PsExec:使用 SMB 协议,可结合 Windows 内置身份验证机制,相对安全(但仍需注意凭证保护)。
-
功能性:
- Telnet:仅提供基本的远程命令行会话。
- PsExec:支持远程执行、文件传输、交互式 shell 以及输出重定向,还可指定高权限运行。
-
部署需求:
- Telnet:目标主机需启用 Telnet 服务,且可能受防火墙限制。
- PsExec:只需目标主机开放 SMB(通常在内网中默认开放),无需额外服务安装。
3.2 内网渗透中的优势
-
高隐蔽性与灵活性:
PsExec 能利用域用户凭证远程执行命令,通常不需要安装额外的代理,降低了被检测的风险。 -
凭证复用与横向移动:
当企业内部存在口令复用问题时,PsExec 可利用已获得的域用户凭证(包括通过 PTH 攻击提取的哈希或明文密码)在内网中迅速横向移动。 -
适用于控制域控主机:
由于域控主机通常允许 SMB 连接和远程命令执行,PsExec 成为上线域控的常用工具。它可以借助正确的域凭证直接在域控上启动命令提示符,实现进一步的权限扩散和内网控制。
4. 实际案例 —— 使用 PsExec 上线域控主机
案例背景
在某企业内网渗透过程中,你已成功获得一台普通工作站的管理员权限,并通过 Mimikatz 提取到了域用户“DOMAIN\jdoe”的明文密码或 NTLM 哈希。你发现“DOMAIN\jdoe”在多个系统中存在口令复用现象,并且域控主机允许 SMB 远程命令执行。接下来,你计划利用 PsExec 上线域控主机,从而实现对整个域的控制。
操作步骤
-
准备工作:
- 确保你有 PsExec 工具(可从 Microsoft Sysinternals 官网下载)。
- 验证目标域控主机的 IP 地址(例如:192.168.1.100)。
- 获得“DOMAIN\jdoe”的有效凭证(例如密码:Passw0rd! 或对应 NTLM 哈希)。
-
使用明文密码登录(示例): 打开命令提示符,执行以下命令:
psexec.exe \\192.168.1.100 -u DOMAIN\jdoe -p Passw0rd! cmd
- 该命令会在目标域控主机上启动一个 CMD 进程,并将输出重定向到本地窗口。
-
使用 NTLM 哈希(PTH 攻击示例): 如果你仅获得了 NTLM 哈希,可以使用类似的工具(如 Impacket 的 psexec.py)来实现 PTH:
python psexec.py DOMAIN/jdoe@192.168.1.100 -hashes :<NTLM哈希>
- 替换
<NTLM哈希>
为实际提取到的哈希值。成功后,你将获得域控主机的远程命令行。
- 替换
-
验证权限: 在获得远程命令行后,输入以下命令确认身份:
whoami
- 如果显示“NT AUTHORITY\SYSTEM”或“DOMAIN\jdoe”且具备管理员权限,则表示上线成功。
案例效果
- 横向移动成功: 通过利用口令复用及 PsExec,你成功从普通工作站横向移动至域控主机。
- 控制扩散: 取得域控主机访问权限后,便可进一步提取更多凭证、部署持久化后门,最终实现对整个企业内网的控制。
5. 总结
-
PsExec 的作用:
PsExec 是一款高效、灵活的远程命令执行工具,利用 SMB 协议实现无需在目标主机预装软件的远程操作,非常适合在内网渗透中使用。 -
与 Telnet 的区别:
- 安全性: Telnet 明文传输,而 PsExec 利用 Windows 认证机制;
- 功能性: Telnet 仅限简单会话,PsExec 支持文件传输、交互式命令以及高权限执行;
- 部署需求: Telnet 需目标启用服务,而 PsExec 利用内置 SMB 协议,适用范围更广。
-
PsExec 优势:
在内网横向移动和凭证复用中,PsExec 能利用域凭证快速上线关键系统(如域控主机),为进一步控制整个网络奠定基础。 -
实际案例总结:
案例中,通过获取“DOMAIN\jdoe”的凭证并利用 PsExec(或 Impacket 的 psexec.py),成功从一台工作站横向移动至域控主机,证明了利用口令复用与 PTH 攻击在实际企业内网渗透中的高效性。
了解并掌握 PsExec 的使用方法和优势,有助于在内网渗透测试和红队演练中实现更精确的横向移动和控制扩散,同时也提醒防御方加强 SMB 认证及日志监控以防范此类攻击。
利用 PsExec 建立 IPC 通道 —— IPC 的定义、关系与实际应用
在内网渗透中,使用 PsExec 建立 IPC 通道是实现远程命令执行的关键步骤。下面详细说明 IPC 的定义、它与 PsExec 的关系,以及在内网渗透中这两者的实际使用。
1. 什么是 IPC?
1.1 IPC 的基本概念
- IPC(Inter-Process Communication) 指的是进程间通信,它允许不同进程之间交换数据或消息。
- 在 Windows 系统中,IPC$ 是一个特殊的隐藏共享目录,用于支持远程管理和进程间通信。
- 该共享通常由系统自动创建,供管理工具(如 PsExec)使用,以建立到目标系统的 SMB(Server Message Block)连接。
1.2 IPC$ 共享的作用
- 远程连接:管理员或工具可以通过 IPC$ 共享连接到远程系统,进行管理操作。
- 凭证验证:通过该共享,系统能验证用户凭证,从而允许远程执行命令和文件传输。
2. PsExec 与 IPC 的关系
2.1 PsExec 的工作原理
- PsExec 是一个远程命令执行工具,它利用 SMB 协议与目标系统建立连接。
- 在建立连接时,PsExec 会默认连接到目标系统的 IPC$ 共享,以便获取远程命令执行所需的访问权限。
2.2 关系说明
- 依赖关系:
- PsExec 必须通过 IPC$ 共享来建立与目标系统的远程连接,因为该共享提供了一个可以进行管理和控制的通道。
- 通信通道:
- 通过 IPC$,PsExec 能够传输必要的文件和命令,最终在目标系统上创建一个进程来执行命令。
3. 内网渗透中的实际应用
3.1 实际使用场景
- 横向移动:
- 攻击者在内网中获得初步权限后,利用已知的域用户凭证,通过 PsExec 建立 IPC$ 连接,实现对其他主机的远程命令执行。
- 远程命令执行:
- 利用 IPC$ 通道上传执行文件或命令,进而在目标主机上打开交互式 shell,从而执行进一步的渗透操作。
3.2 具体使用方法示例
示例 1:通过 PsExec 使用明文密码建立 IPC$ 连接
psexec.exe \\192.168.1.50 -u DOMAIN\username -p Password cmd
- 步骤说明:
- 该命令会连接到目标 IP 为 192.168.1.50 的主机。
- PsExec 利用 SMB 协议自动连接到目标系统的 IPC$ 共享。
- 成功后,在目标主机上启动一个 CMD 进程,实现远程命令执行。
示例 2:利用 NTLM 哈希进行 PTH 攻击并建立 IPC$ 通道
使用 Impacket 的 psexec.py:
python psexec.py DOMAIN/username@192.168.1.50 -hashes :<NTLM_Hash>
- 步骤说明:
- 此命令通过 NTLM 哈希而非明文密码进行身份验证。
- 同样依赖 IPC$ 共享来建立 SMB 连接,实现远程命令执行。
3.3 应用优势总结
- 隐蔽性高: 利用内网中现有的 SMB 协议和 IPC$ 共享,远程连接不容易引起注意。
- 操作简便: 无需在目标系统上预装额外的客户端软件,只要目标主机开放了 SMB(通常在内网中默认开放)。
- 扩展性好: 能够利用 IPC$ 通道在整个内网中横向移动,进而实现对多个系统的控制。
4. 总结
- IPC$ 共享在 Windows 系统中充当了远程管理和进程间通信的关键通道,供管理工具和渗透工具使用。
- PsExec 依赖于 IPC$ 共享来建立 SMB 连接,实现远程命令执行,是内网渗透中常用的工具。
- 实际应用中,通过 PsExec 建立 IPC$ 通道后,攻击者可以利用已知凭证或哈希,在内网中迅速横向移动,实现对目标主机(如域控、关键服务器)的远程控制。
掌握了 IPC 的概念和其在 PsExec 中的应用,有助于理解和利用内网中现有的网络管理机制进行高效渗透,同时也提醒防御方重视 SMB/IPC$ 共享的安全配置和访问控制。
相关文章:
CS内网渗透 ----【内网渗透实战】PsExec vs Telnet:建立IPC通道实现横向移动与域控上线全解析
目录 1. 什么是 PsExec? 2. 什么是 Telnet? 3. PsExec 与 Telnet 的区别及优势 3.1 主要区别 3.2 内网渗透中的优势 4. 实际案例 —— 使用 PsExec 上线域控主机 案例背景 操作步骤 案例效果 5. 总结 利用 PsExec 建立 IPC 通道 —— IPC 的定…...
第二十三天打卡
作业: 整理下全部逻辑的先后顺序,看看能不能制作出适合所有机器学习的通用pipeline 数据预处理 → 特征选择 → 降维 → 模型训练 import pandas as pd import numpy as np from sklearn.model_selection import train_test_split, GridSearchCV from sk…...
aardio - 将文本生成CSS格式显示
import win.ui; /*DSG{{*/ var winform win.form(text"aardio form";right759;bottom469) winform.add( button{cls"button";text"Button";left340;top130;right430;bottom180;z3}; edit{cls"edit";text"我是一串文本";lef…...
【漫话机器学习系列】256.用 k-NN 填补缺失值
用 k-NN 填补缺失值:原理、实现与应用 在实际的数据科学项目中,我们经常会遇到数据缺失(Missing Values)的问题。缺失值如果处理不当,不仅会影响模型训练,还可能导致最终结果偏差。 今天,我们…...
tomcat与nginx之间实现多级代理
准备工作 准备5台虚拟主机;至少准备3台虚拟主机; 设备1作为代理服务器;设备2与设备4作为处理静态资源请求服务器(使用nginx);设备3与设备5作为处理动态资源服务器(使用tomcat) 设…...
商业航天运动控制系统中的高可靠性芯片解决方案:挑战、策略与应用研究
摘要:随着商业航天领域的迅速发展,运动控制系统对芯片的可靠性提出了前所未有的挑战。本文深入探讨了商业航天运动控制系统中芯片可靠性面临的挑战,包括宇宙辐射效应、极端环境适应性及系统级可靠性保障等。同时,通过案例研究展示…...
[Java实战]Spring Boot 3 整合 Ehcache 3(十九)
[Java实战]Spring Boot 3 整合 Ehcache 3(十九) 引言 在微服务和高并发场景下,缓存是提升系统性能的关键技术之一。Ehcache 作为 Java 生态中成熟的内存缓存框架,其 3.x 版本在性能、功能和易用性上均有显著提升。本文将详细介绍…...
【Flask全栈开发指南】从零构建企业级Web应用
目录 🌟 前言🏗️ 技术背景与价值🚧 当前技术痛点🛠️ 解决方案概述👥 目标读者说明 🔍 一、技术原理剖析📊 核心概念图解💡 核心作用讲解🧩 关键技术模块说明⚖️ 技术选…...
使用docker安装clickhouse集群
1、简介 clickhouse 作为大数据场景中,实现快速检索的常用列式存储数据库,采用物理机部署,会在数据量大的场景中,物理机器存储达到阈值需要扩容,会带来比较大的问题,因此,使用docker部署clickho…...
佰力博科技准静态d33测试的注意事项
准静态d33测试是测量压电材料纵向压电应变常数的重要方法,其注意事项包括以下几个方面: 选择合适的测量设备 准静态d33测试需要使用专用的压电测试仪,如佰力博PEAI1000高精度压电分析仪、准静态d33测量仪或PCA1000压电陶瓷综合参数分析仪。这…...
iOS设备投屏Archlinux
我的iphone手机屏太小,我想把手机投到archlinux电脑上看。与是我就想找一个免费的软件。 UxPlay https://github.com/FDH2/UxPlay GPLv3,开源。原来只支持 AirPlay Mirror 协议,现在新增 支持来自 AirPlay 的纯音频 (Apple Los…...
VUE_UI组件的二次封装
属性和事件 <template><div><myInput a"1" b"2" c"3" change"() > {}"></myInput></div> </template>myInput.vue <template><div><el-input v-bind"$attrs">&…...
算法·KMP
KMP算法的思想 想要一次性遍历模板串 s 1 s_1 s1,不在匹配失败时重新开始遍历子串 s 2 s_2 s2,实现模板串不回退的效果。 KMP数组的理解 KMP数组有两种定义:一是匹配失败后,子串 s 2 s_2 s2应该回退的位置,一种…...
如何正确地写出单例模式
如何正确地写出单例模式 | Jarks Blog 枚举方式: public class SingletonObject {private SingletonObject() {}/*** 枚举类型是线程安全的,并且只会装载一次*/private enum Singleton {INSTANCE;private final SingletonObject instance;Singleton() {…...
Mac M系列 安装 jadx-gui
安装 Homebrew在终端中执行以下命令(需管理员密码): 安装 Homebrew(官方源) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"国内用户可用镜像源加速&…...
水滴Android面经及参考答案
目录 static 关键字有什么作用,它修饰的方法可以使用非静态的成员变量吗? Java 中创建线程有几种方式? wait 和 sleep 的区别,如何打断 sleep? Java 垃圾回收的目的是什么,垃圾回收机制是怎样的? Java 的垃圾回收(GC)机制是如何工作的? 请解释 Java 内存模型(J…...
《猜拳游戏》
综合案例《猜拳游戏》 需求: 本游戏是一款单机游戏,人机交互 规则: 需要双方出拳:石头、剪刀、布 赢: 石头 → 剪刀剪刀 → 布布 → 石头 平: 两边出拳相等 输: … 实现: 选择对…...
Mysql索引优化
一、索引 1. 主键索引(Primary Index) 定义 主键索引是一种特殊的唯一索引,用于唯一标识表中的每一行数据。每个表最多有一个主键索引,且索引列不允许为 NULL,自动添加 UNIQUE 和 NOT NULL 约束。 特点:…...
Postgresql与openguass对比
背景介绍 PostgreSQL是世界上最先进的开源关系型数据库,以其强大的功能、稳定性和可扩展性著称。而openGauss是华为公司于2020年6月30日开源的数据库系统,内核基于PostgreSQL 9.2.4版本演进而来。值得注意的是,PostgreSQL 11.3版本拥有290个数…...
线程的概念和控制
自从20世纪60年代提出了进程的概念之后,操作系统一直以进程作为独立运行的基本单位。到了20世纪80年代,人们又提出了比进程更小的、能独立运行的基本单位——线程。提出线程的目的是试图提高系统并发执行的程度,从而进一步提高系统的吞吐量。…...
如何配置activemq,支持使用wss协议连接。
1、到阿里云申请一个证书,通过后下载jks证书。 2、配置activemq: 打开activemq安装目录中“conf/activemq.xml”,增加以下记录: <transportConnectors> <transportConnector name"wss" uri"…...
【言语】刷题3
front:刷题2 题干 超限效应介绍冰桶挑战要避免超限效应 B明星的作用只是病痛挑战的一个因素,把握程度才是重点,不是强化弱化明星作用,排除 A虽没有超限效应,但是唯一的点出“冰桶效应”的选项,“作秀之嫌…...
关于 ast: Babel AST 全类型总览
AST 的每个节点都有一个 type 字段,用来标识它的语法类型。 程序结构节点 type说明示例Program整个程序的根节点整体代码结构BlockStatement大括号代码块 {}if、function、for 等的主体ExpressionStatement表达式语句(如 a b;)EmptyStatem…...
STM32 内存
根据STM32的存储器映射机制,其32位地址总线可访问4GB逻辑地址空间(0x00000000-0xFFFFFFFF),但实际物理地址分配由芯片厂商定义。以下是STM32完整的地址映射结构及关键区域说明: 一、地址空间整体架构 4GB地址空间划分…...
图片的require问题
问题 <template><!--第一种方式--><img :src"require(/assets/${imageName})" style"width:100px;" /><!--第二种方式--><img :src"require(imageUrl)" style"width:100px;" /> </template><…...
关于 js:8. 反调试与混淆识别
一、常见反调试手段识别 1. debugger 死循环(阻塞调试器) 样例代码: while (true) {debugger; }原理: 每次执行到 debugger 语句,如果 DevTools 打开,将自动触发断点。 如果在死循环中,调试…...
深度Q网络(DQN)的基本概念
一、深度Q网络(DQN)的基本概念 深度Q网络(Deep Q-Network,DQN)是将强化学习中的Q学习(Q-Learning)与深度学习相结合的算法,由DeepMind在2013年提出,并在2015年发表于《Nature》杂志。它通过神经网络近似动作价值函数(Q函数),解决传统Q学习在高维状态空间下的计算难…...
uniapp+vue3中自动导入ref等依赖
前言: 在我们使用uni-appvue3创建项目,开发的过程中,老是需要导入我们的ref、onshow等,那么能不能自动导入,不用我们每个页面都写呢?是没问题的,这里让他的小帮手来帮你减轻负担:他就…...
合肥SMT贴片加工核心优势与工艺升级
内容概要 在电子制造领域,工艺精度与生产效率的平衡始终是企业关注的核心命题。本文将系统呈现合肥SMT贴片加工产业的技术演进图谱,为寻求制造升级的企业提供可落地的决策参考。 作为长三角电子制造集群的重要节点,合肥SMT贴片加工产业通过持…...
Ansible安装与核心模块实战指南
Ansible安装与核心模块实战指南 自动化运维入门:从安装到模块化任务配置 Ansible作为一款无代理自动化工具,通过模块化设计实现高效管理,尤其适用于快速部署、配置和维护大规模系统。本文将从安装、核心模块使用到实际案例,全面解析其核心功能与最佳实践。 一、Ansible安装…...
TDengine 做为 Spark 数据源
简介 Apache Spark 是开源大数据处理引擎,它基于内存计算,可用于批、流处理、机器学习、图计算等多种场景,支持 MapReduce 计算模型及丰富计算操作符、函数等,在大超大规模数据上具有强大的分布式处理计算能力。 通过 TDengine …...
Codeforces Round 997 (Div. 2)
A. Shape Perimeter 题目大意 给你一个m*m的正方形,再给你n个坐标表示每次在xy移动的距离(第一个坐标是初始位置正方形左下角),问路径图形的周长 解题思路 记录好第一次的位置之后一直累加最后求总移动距离的差值即可 代码实…...
WSL 安装 Debian 12 后,Linux 如何安装 nginx ?
在 WSL 的 Debian 12 中安装 Nginx 的步骤如下: 1. 更新系统软件包 sudo apt update && sudo apt upgrade -y2. 安装 Nginx sudo apt install nginx -y3. 管理 Nginx 服务 ▶ 启动 Nginx sudo service nginx start # 如果使用 systemd 可能需改用&…...
目标检测任务 - 数据增强
目标检测任务 - DETR : 数据预处理/数据增强 算法源码实例 import datasets.transforms as Tnormalize T.Compose([T.ToTensor(),T.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) ])scales [480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800]…...
java的switch case
import java.util.Scanner;public class Hello {public static void main(String[] args) {Scanner in new Scanner(System.in);int type in.nextInt();switch(type){case 1:case 2:System.out.println("你好");break;case 3:System.out.println("晚上好"…...
基于亚博K210开发板——LCD触摸屏读取坐标数据测试
开发板 亚博K210开发板 实验目的 主要学习 K210 通过 I2C 读取触摸屏的坐标,并打印出来,显示在 LCD上。 实验准备 实验元件 LCD 显示屏触摸板 元件特性 K210 开发板自带 2.0 寸触摸屏,其实是 LCD 显示屏上贴一个触摸板组成…...
coze平台实现文生视频和图生视频(阿里云版)工作流
工作流全貌 开始 首先从入参开始: api_key:来自阿里云百炼平台,自行去申请 prompt:生成视频的文本提示词。支持中英文,长度不超过800个字符,每个汉字/字母占一个字符,超过部分会自动截断。 …...
python酒店健身俱乐部管理系统
目录 技术栈介绍具体实现截图系统设计研究方法:设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理,难度适中…...
QtGUI模块功能详细说明,图标和光标(七)
目录 一.窗口和屏幕管理 二. 绘图和渲染 三. 图像处理 四. 字体和文本 五. 事件和输入处理 六. OpenGL 和硬件加速 七. 颜色和外观 八. 图标和光标 1、QIcon: 图标管理 1.1、QIcon 简介 1.2、图标的来源与创建 1.3、多分辨率与 DPI 支持 1.4、图标的状态管理 2、…...
【图像处理基石】如何入门OCR技术?
入门OCR(Optical Character Recognition,光学字符识别)技术需要结合理论学习、工具实践和项目实战,以下是分步骤的学习指南,适合零基础学习者: 一、明确OCR技术的核心概念 OCR的基本原理 核心流程…...
数据库知识沉浸式游戏化学习设计研究
数据库知识沉浸式游戏化学习设计研究 摘要: 本研究旨在设计一款以数据库知识为主题的沉浸式游戏化学习系统。通过对数据库知识体系的深入剖析,结合游戏化学习理论,构建了一个多层次、多任务的游戏架构。玩家在游戏过程中需完成构建数据库结构、编写 SQL 查询等任务来解锁关…...
大疆无人机
在大疆上云API中,DRC 链路通常指 Device-Cloud Remote Control Link(设备-云端远程控制链路),它是无人机(或设备)与云端服务之间建立的实时控制与数据传输通道,用于实现…...
撤回不了一点 v1.0.2,支持微信QQ钉钉飞书等消息防撤回
如今生活节奏快得飞起,社交软件和工作通讯软件成了咱日常交流的核心阵地。大家肯定都有过这些闹心事儿:和朋友聊得正嗨,对方突然撤回一条消息,好奇心瞬间爆棚,却怎么也看不到撤回的内容;工作群里关键信息刚…...
什么是Git?
“Git”是目前非常火、广泛使用的版本控制系统,尤其在软件开发领域中扮演着核心角色。 一、什么是Git?它到底是什么? Git 是一种版本控制系统(Version Control System, VCS)。它的主要作用是帮助开发者管理“代码的不…...
微信小程序 自定义图片分享-绘制数据图片以及信息文字
一 、需求 从数据库中读取头像,姓名电话等信息,当分享给女朋友时,每个信息不一样 二、实现方案 1、先将数据库中需要的头像姓名信息读取出来加载到data 数据项中 data:{firstName:, // 姓名img:, // 头像shareImage:,// 存储临时图片 } 2…...
langchain提示词的使用
一、概述 提示词是指向人工智能大模型提供的输入信息,通常包含关键词、问题或指令,可以引导大模型生成与用户期望相符的回应。我们在豆包,DeepSeek等大模型中输入的问题都可以认为一个简单的提示词,不过为了真正得到我们需要的结…...
C语言| extern的用法作用
C语言| 局部变量、全局变量 extern定义的变量,只对全局变量有用。 掌握extern的用法及其作用。extern主要用于在不同.c文件间扩展全局变量的作用范围。 扩展全局变量的使用范围,操作方法: 1 在一个文件内扩展全局变量的使用范围 全局变量…...
Rust 环境变量管理秘籍:从菜鸟到老鸟都爱的 dotenv 教程
前言 写代码的你,是否遭遇过这些灵魂拷问: “我现在在哪个环境?开发?测试?还是直接在生产线上裸奔?”“少写一个 .env,测试脚本在数据库里上演清空大法,客户当场破防。”“每次手动设置 RUST_ENV,命令敲到一半就开始怀疑人生,还怕输错一个字符引发灭世级事故。”别慌…...
Leetcode (力扣)做题记录 hot100(49,136,169,20)
力扣第49题:字母异位词分组 49. 字母异位词分组 - 力扣(LeetCode) 遍历数组,将每一个字符串变成char数组 然后排序,如果map里面有则将他的值返回来(key是排序好的字符串) class Solution {pu…...
Slitaz 系统深度解析
Slitaz 系统深度解析:从系统架构到设计哲学 一、系统定位与核心目标 Slitaz(Simplified Lightweight IT Automatic Zen)是一个基于 Linux 的超轻量级发行版,设计目标是极致轻量化、快速启动、低资源消耗,专为老旧硬件…...