findpass:从pcap中批量提取明文用户名密码的实用工具

简介:FindPass是一款用于Windows NT4/2000系统的密码查询工具,面向系统管理员与安全测试人员。它利用调试特权读取winlogon进程内存,依据明文存储的域名与用户名定位对应登录会话,进而解密出用户口令,适用于管理员忘记本地账户密码或进行内网渗透测试的场景。资源共5个文件,压缩包仅106KB,其中包含FindPass.exe与pulist.exe两个可执行程序、FindPass.cpp完整C++源码、readme说明文档及一张演示截图,既可直接运行工具,也可阅读源码理解Windows登录密码的内存存储与解码机制。工具支持通过pulist获取当前登录的用户名、域名与winlogon进程PID,再对指定进程执行查找,示例中成功恢复了测试账户的明文密码。目前已有793人学习下载,适合需要掌握Windows认证机制或进行密码恢复研究的技术人员参考。

1. 用户名密码查询工具 findpass:先把漏网的明文账号捞出来

做网络审计的人应该都有过这种经历:拿到一个抓包文件,明明知道里面某台设备的密码就是明文,可翻包翻了半小时也没定位到那一条记录。findpass 就是解决这个问题的命令行工具,它从 pcap、tshark 导出的流量字段文件或日志文本里,把 HTTP Basic、FTP 登录、SMTP AUTH、表单 POST 中的用户名密码批量捞出来,结果直接落成 JSON。适合网络管理员、应急响应人员和做内网安全评估的从业者使用,尤其是对方还在用老系统、明文协议的场景。

它的用法很简单,一条命令就能出结果,但真正决定提取效果的不是命令本身,而是正则边界、编码识别、TCP 分片处理这些细节。下面从提取原理开始讲清楚,再进入可复现的操作步骤。

2. findpass 的提取原理:协议特征匹配与正则边界的取舍

2.1 抓包里哪些位置放着账号密码

先明确一件事:findpass 做的是明文凭证提取,不是协议漏洞利用。它依赖的底层事实是,FTP、Telnet、HTTP Basic 认证、SMTP AUTH 这些协议在传输过程中,账号密码以固定格式出现在明文载荷里。只要 pcap 中对应协议的握手包被完整抓到,账号密码就是可读的。

常见的位置分三类:

  • FTP 登录命令:客户端发USER root,服务端回331,客户端再发PASS 123456,USER 和 PASS 一般相邻且在同一段载荷里。
  • HTTP Basic 认证:客户端在Authorization请求头里发Basic base64串,解码后是用户名:密码。
  • 表单 POST 登录:登录页面提交的键值对,如username=admin&password=123456,通常出现在 TCP 的后续数据段中。

Telnet 也常见,它的格式更像交互式输入:服务端提示login:,客户端回用户名;服务端提示Password:,客户端回密码。由于没有统一的包边界,提取难度更高,findpass 默认的处理方式是把同一 TCP 连接的数据拼接后再匹配。

《单独抓包看不到完整登录过程》是初用者最容易误判的点。只看单个数据包,FTP 的 USER 和 PASS 可能被拆进两个包里,表单 POST 的内容可能被中间代理重组成多段。所以 findpass 的核心逻辑不是逐包盲扫,而是先做流窗口拼接,再在拼接后的数据上跑正则。

2.2 正则规则:边界写严,误报率才会低

findpass 的正则全部基于字节串匹配,也就是bytes类型,避免文件编码干扰。下面是核心规则定义。

import re # 各协议的识别规则,统一用 bytes 匹配,避免编码干扰 HTTP_BASIC = re.compile( rb"Authorization:\s*Basic\s+([A-Za-z0-9+/]{4,}={0,2})", re.I ) FTP_LOGIN = re.compile( rb"USER\s+([^\s\r\n]+)\r?\nPASS\s+([^\s\r\n]+)\r?\n", re.I ) FORM_POST = re.compile( rb"(?:username|user|account|login)=([^&\s]+)" rb"&(?:password|pass|pwd)=([^&\s]+)", re.I )

第一组HTTP_BASIC匹配的是Authorization: Basic XXXXX。[A-Za-z0-9+/]{4,}={0,2}这个结尾很重要,base64 串最短也是 4 个字符,且等号只出现在末尾、最多两个,这样不会把后面的十六进制数据段吞进来。

第二组FTP_LOGIN用了\r?\n,兼容 Windows 和 Linux 下不同的换行风格。注意它要求 USER 和 PASS 在同一段连续数据里出现,中间只允许\r?\n,如果中间夹了服务端的331响应,这条正则就不命中,需要走流重组逻辑。

第三组FORM_POST匹配键值对形式。键名覆盖了 username、user、account、login 这几种常见写法,密码键覆盖了 password、pass、pwd。[^&\s]+定义值不包含&和空白符,防止跨字段误抓。

每条正则看起来简单,但去调过的项目里出现过不少翻车:边界写宽了会把日志里的password=***抓出来,写窄了又漏掉真实凭证。经验是先把线上真实流量导几千行出来,拿正则跑一遍看命中样例,再决定放宽还是收紧。

2.3 规则文件与参数:不动主程序就能调匹配

findpass 把正则规则和主程序拆开,规则放在 JSON 文件里,改匹配逻辑不用碰代码。

{ "http_basic": { "pattern": "Authorization:\\s*Basic\\s+([A-Za-z0-9+/]{4,}={0,2})", "ignore_case": true, "extract": "base64_colon" }, "ftp_login": { "pattern": "USER\\s+([^\\s\\r\\n]+)\\r?\\nPASS\\s+([^\\s\\r\\n]+)\\r?\\n", "ignore_case": true, "extract": "two_groups" }, "form_post": { "pattern": "(?:username|user|account|login)=([^&\\s]+)&(?:password|pass|pwd)=([^&\\s]+)", "ignore_case": true, "extract": "two_groups" } }

主程序启动时读这个文件,把 pattern 编译成正则。extract字段告诉程序怎么解析捕获组:base64_colon表示第一组是 base64 串,解码后按冒号拆账号密码;two_groups表示第一组是用户、第二组是密码。

命令行参数按使用频率设计:

参数作用默认值
--rules指定规则文件路径rules.json
--min-len账号或密码最小长度,过滤单字符误报1
--reassemble开启流窗口拼接,处理跨包凭证关闭
--window-size单条流拼接窗口大小,单位字节65536
--output结果输出路径findpass_result.json
--top只输出结果的前 N 条全部输出

--reassemble这个参数后面会单独讲,它解决的是 TCP 分片导致的漏报,属于高频开关。

3. 跑通第一次提取:环境准备、tshark 导出与命令输出

3.1 环境准备:Python 与 tshark 命令行

findpass 是 Python 3 脚本,不依赖第三方库,标准库里的 re、json、argparse、base64 就够用。另外需要准备 tshark 命令行工具,它负责把 pcap 转成 findpass 能读的字段文本。

# Debian/Ubuntu 系的常见安装方式 sudo apt update sudo apt install -y python3 tshark

装完后验证两个工具都在:

python3 --version tshark -v

注意 tshark 在部分发行版安装后,普通用户抓包需要加入 wireshark 用户组,否则会提示权限不足。常见做法是sudo usermod -aG wireshark $USER,然后重新登录终端。Windows 上安装 Wireshark 时勾选 Tools 组件即可,tshark.exe 在安装目录下。

有一点值得提前说:这里选择用 tshark 导出字段文件,而不是让 findpass 直接解析 pcap。原因之一是 pcapng 容器格式比经典 pcap 复杂,不同抓包工具生成的文件头有差异,直接解析很容易翻车;原因之二是 tshark 能顺便做协议过滤,把无关流量挡在源头。

3.2 用 tshark 导出流量字段

抓包文件拿到手后,先导出 TCP 载荷。下面的命令把每个 TCP 包的时间、来源 IP、目标 IP、端口、载荷十六进制数据导出为 Tab 分隔的文本文件。

tshark -r dump.pcap -Y "tcp.payload" -T fields \ -e frame.time \ -e ip.src -e ip.dst \ -e tcp.srcport -e tcp.dstport \ -e data.data > export.tsv

各字段含义:frame.time是包的捕获时间,ip.src和ip.dst是通信双方,tcp.srcport和tcp.dstport是端口,data.data是 TCP 载荷的十六进制字符串。-Y "tcp.payload"把没有载荷的 ACK 包过滤掉,减小文件体积。

如果抓包文件很大,建议在导出阶段就限定端口。比如只关心 FTP 和 HTTP:

tshark -r dump.pcap -Y "tcp.payload && (tcp.port == 21 || tcp.port == 80)" \ -T fields \ -e frame.time \ -e ip.src -e ip.dst \ -e tcp.srcport -e tcp.dstport \ -e data.data > ftp_http_export.tsv

导出完成后,用wc -l看一下行数,确认数据不是空的。我一般还会随机抽几行看下data.data是否为空,因为有些抓包工具会丢载荷信息,空的十六进制字段对提取没有意义。

3.3 执行 findpass 提取凭证

导出文件就绪后,直接跑主脚本。

python3 findpass.py export.tsv -o result.json --min-len 1

正常输出类似这样:

[findpass] 共发现 12 条候选凭证 [findpass] 协议 http_basic: 5 条 [findpass] 协议 ftp: 6 条 [findpass] 协议 http_form: 1 条 2025-01-10 10:23:45 192.0.2.10:51000 -> 192.0.2.20:21 [ftp] admin / ftp_pass_2025 2025-01-10 10:23:46 192.0.2.10:51002 -> 192.0.2.30:80 [http_basic] admin / admin123

每一行对应一条候选凭证,包含时间、来源、目标、协议、用户名和密码。完整结果写入result.json,里面是结构化数据,方便后续用脚本处理。

JSON 里每条记录的字段长这样:

{ "line_no": 182, "time": "2025-01-10 10:23:45", "src": "192.0.2.10", "dst": "192.0.2.20", "sport": "51000", "dport": "21", "proto": "ftp", "username": "admin", "password": "ftp_pass_2025" }

line_no是导出文件中的行号,方便回查原始包;src和dst对应通信双方;dport是服务端端口,可以帮助判断这台设备在跑什么服务。

3.4 结果去重与输出控制

一次抓包里同一个账号密码可能出现在多条记录里,比如 TCP 重传、同一客户端多次登录。去重直接决定结果表干不干净。findpass 内置的去重逻辑按五元组加凭证内容做键:

def dedup_items(items): seen = set() for it in items: key = ( it["src"], it["dport"], it["proto"], it["username"], it["password"] ) if key not in seen: seen.add(key) yield it

这里没有把目标地址dst放进键里,因为同一个内网源 IP 访问不同服务器时,如果密码相同,合并成一条反而能看出账号复用问题。如果你需要区分目标机器,把it["dst"]加到元组里即可。

--top参数适合在结果量很大的时候先用来看头部数据。实际审计中,我会先跑一次全量去重,然后按dport分组统计,确认哪些端口上的凭证最多,再决定优先验证哪一批。

4. 换场景调优:从 HTTP 表单到超大 pcap 的四个典型参数改动

4.1 HTTP 表单场景:URL 编码与键名差异

表单 POST 的提取最容易出问题的是编码。页面提交时如果开启了 URL 编码,密码里的特殊字符会变成%21这种形式,直接按文本看是乱码,匹配规则倒是能命中原始串,但结果可读性差。

常见做法是在提取后做一次 URL 解码:

from urllib.parse import unquote def decode_form_value(value): return unquote(value.replace("+", " "))

把%21%40%23还原成!@#,把+还原成空格。findpass 在--decode-form-values参数开启时会自动执行这一步。

键名差异则是另一个高频问题。有的系统表单字段是user_name、passwd,还有的是login、secret。遇到这种情况,不用改主程序,直接在 rules.json 的form_post正则里把替代分支加进去。

4.2 FTP 和 Telnet 场景:开启流重组

前面提到,FTP 的 USER 和 PASS 可能跨两个 TCP 段,HTTP 表单也可能被分片。逐包匹配在这种情况下必然漏报,解决开关是--reassemble。

开启后,findpass 按五元组把同一 TCP 流的载荷累积到一个窗口里,再对窗口数据跑正则。窗口大小由--window-size控制,默认 64KB。

python3 findpass.py export.tsv --reassemble --window-size 65536 -o result.json

流拼接的具体逻辑是:每个五元组加方向维护一个字节缓冲,新包载荷追加到缓冲尾部,超长时只保留最后 N 字节。这样凭证出现在连接建立后的前几包时,窗口里一定覆盖得到。窗口设太大会拖慢速度,设太小又拼不齐跨多段的凭证,64KB 对大多数登录流程来说是够用的。

Telnet 比 FTP 更麻烦,它的提示符和输入不是标准命令结构。开启--reassemble后,findpass 在拼接数据里扫描login:和Password:提示符之间的内容,但 Telnet 选项协商字节\xff开头的序列要提前过滤,否则会把账号密码串冲乱。这部分在脚本里实现了strip_telnet_options函数:

def strip_telnet_options(data): # 去掉 Telnet 协议自带的 IAC 命令字节,保留纯输入内容 clean = bytearray() i = 0 while i < len(data): if data[i] == 0xff: i += 3 continue clean.append(data[i]) i += 1 return bytes(clean)

逻辑说明:Telnet 的 IAC 字节是0xFF,后面跟两个参数字节长度,遇到就直接跳过,避免0xFF干扰后续匹配。这个函数只在--telnet-strip-iac参数开启时生效。

4.3 超大 pcap:分片导出与降低内存

2GB 的 pcap 文件直接整体导出,tshark 会吃大量内存,findpass 读入后也容易 OOM。实际项目里我不会一次压给脚本,而是先按端口分片,再循环导出。

for f in /data/pcap/*.pcap; do tshark -r "$f" -Y "tcp.payload && tcp.port==21" -T fields \ -e frame.time -e ip.src -e ip.dst \ -e tcp.srcport -e tcp.dstport -e data.data \ >> ftp_export.tsv done

这样每个文件单独处理,某个文件格式有问题不会拖垮整个过程。导出后如果 TSV 超过 200MB,我还会按时间切分,比如按小时拆成多个文件,分批跑 findpass,最后合并 JSON 结果。--reassemble在这种大文件场景下要慎开,因为流缓冲全在内存里,并发流多时会涨得很快。

4.4 加密流量的边界与替代手段

HTTPS、SSH、加密 RDP 这类流量在 findpass 里提取不到凭证,这是协议限制,不是工具缺陷。面对全加密抓包,我一般会换两条路:一是判断抓包环境是否可控,如果流量经过自己的代理设备,可以配置 SSL 解密后再重复提取;二是放弃流量侧,直接去服务端日志里查登录记录,应用日志里往往有账号和登录结果。

这个边界在实际项目中要提前和需求方说清楚,免得跑完一次发现结果为空,双方都无法收场。findpass 适合的场景是内网审计中还有明文协议的存量设备,比如老的 FTP 服务器、测试环境的 HTTP 后台、打印机管理页面。

5. 避坑指南:findpass 使用中的五个典型翻车问题

5.1 base64 串多吞字符导致解码乱码

现象:HTTP Basic 解出来是一串带\x00或明显截断的乱码,账号密码混在一起。

原因:正则里的 base64 字符集没有约束长度,把后续载荷里的十六进制字符也吃进来了,解码结果里混入多余字节。

解决:把正则收紧为[A-Za-z0-9+/]{4,}={0,2},并在解码后做两层校验:解码结果必须包含冒号,且长度不超过 256 字节。实际经验是多数 base64 凭证解码后长度不超过 128 字节,超长的直接丢弃比硬猜更可靠。

5.2 表单密码是 URL 编码或 UTF-16,结果看着像乱码

现象:密码字段提取出来是%21%40%23,或者中间全是\x00,直接读不出明文。

原因:页面提交前走了 URL 编码,或者服务端用 UTF-16 接收参数,而 findpass 默认按 UTF-8 显示,中文和特殊字符全被打乱。

解决:开启--decode-form-values做一次 URL 解码;UTF-16 则需要先按utf-16-le解码再跑正则。遇到疑似编码问题时,我一般先截一段十六进制数据手工解码确认编码方式,再决定该开哪个开关。

5.3 把 pcap 或 pcapng 直接喂给脚本导致解析失败

现象:脚本报错或导出结果为空,程序提示文件头不认识。

原因:findpass 的输入设计为 tshark 导出的字段文本,不是 pcap 本身。不同抓包工具生成的 pcapng 文件头差异很大,直接解析必然翻车。

解决:统一先走 tshark 导出步骤,把data.data转成字段文本再喂给 findpass。如果环境里没有 tshark,也可以用 Wireshark 的导出对象功能手动导出,但字段顺序要对齐。

5.4 USER 和 PASS 不在同一个包里导致漏报

现象:FTP 登录流程清晰,同一连接里先后有USER和PASS,但提取结果为空。

原因:两个命令分别落在不同的 TCP 段里,逐包匹配时正则要求USER ...\r\nPASS ...连在一起,所以没命中。

解决:开启--reassemble流重组。如果重组后还是漏,检查抓包文件是否丢包——抓包时如果交换机端口镜像带宽不足,中间段缺失,那是流量侧的问题,不是工具能补的。

5.5 把提取结果直接当成最终凭证库使用

现象:findpass 输出的 12 条凭证里,有 5 条是内网设备自己发的心跳包内容,根本不是账号。

原因:正则只保证格式匹配,不保证语义正确。设备型号、固件版本、主机名出现在用户名位置并不罕见。

解决:提取结果只作为候选集,验证工作不可省略。后面第 6 章会给出交叉验证的做法。

6. 验证提取结果:用响应码和流量特征交叉确认

6.1 响应码探测法

对每一组候选凭证,可以构造一次真实登录请求,看服务端响应码判断是否有效。HTTP 服务用 curl 就能完成:

curl -s -o /dev/null -w "%{http_code}" \ -u "admin:admin123" \ http://192.0.2.20/admin

响应码说明:401 表示认证失败但服务在线;200 表示登录成功;403 表示账号有效但权限不足,也算验证通过;502 或 504 则说明目标服务异常,结果不可信。

FTP 服务可以用带账号密码的登录命令验证:

curl -s -o /dev/null -w "%{ftp_code}" \ "ftp://admin:ftp_pass_2025@192.0.2.20/"

所有验证必须在有明确授权的网络和设备上进行,这条原则我每次都会写进给需求方的交付文档里。

6.2 流量特征与时间戳交叉验证

不是所有凭证都能现场探测,比如目标已下线或端口已变更。这时回头翻流量本身的特征会更高效。

同一组账号密码出现在多个源 IP 指向同一目标端口,大概率是扫描行为或默认口令被批量尝试;单条流里时间戳前后几秒内存在完整的三次握手和登录过程,则更像是真实业务凭证。我常用的指标是多包一致性:同一个账号密码在至少三组不同时间、不同源 IP 的流里命中,候选可信度会明显上升。

做完验证后我会把结果重新导出成一张去重表,标注每条凭证的验证状态、来源文件和原始行号,交给需求方复盘。从那以后我每次跑完 findpass 都强制走一遍响应码验证和流量特征检查,确认无误才写进报告,这个习惯帮我挡掉了不止一次误报返工。希望你拿这套脚本跑任务时也能少踩这些坑,快速定位到真正需要的账号信息。

本文还有配套的精品资源,点击获取

相关新闻

Flutter鸿蒙化适配:jao对象映射库迁移实战与手写Mapper方案

Flutter鸿蒙化适配:jao对象映射库迁移实战与手写Mapper方案

最近在把一个 Flutter 项目往鸿蒙上搬&#xff0c;最磨人的不是界面适配&#xff0c;反而是依赖的三方库。其中最让我意外的是 jao——一个打“极简”旗号的 Dart 对象映射库&#xff0c;平时做 DTO 与领域实体转换非常顺手&#xff0c;结果在鸿蒙环境第一次构建就直接给我上了…

2026/10/21 6:33:37 阅读更多 →
多变量时序分类实战:LSTM/CNN/CNN-LSTM在Matlab中的实现与对比

多变量时序分类实战:LSTM/CNN/CNN-LSTM在Matlab中的实现与对比

我最近刚在一个多变量时序分类项目里&#xff0c;把LSTM、CNN、CNN-LSTM三种模型在Matlab中完整跑了一遍对比实验。项目背景是某工业设备的运行状态分类&#xff0c;传感器采集了温度、压力、振动、电流四个维度的时序数据&#xff0c;目标是从连续采样窗口中识别出设备的五种工…

2026/10/21 6:33:37 阅读更多 →
Windows下将完整操作系统安装到U盘的持久化实战指南

Windows下将完整操作系统安装到U盘的持久化实战指南

1. 为什么要把系统装进U盘而不是虚拟机把操作系统装进U盘这件事&#xff0c;最早是从运维圈子里流行起来的。那时候大家手里揣着好几个U盘&#xff0c;每个U盘里装一套不同的环境&#xff0c;到客户现场直接插上就能用&#xff0c;不用动客户机器上的任何东西。后来做安全测试、…

2026/10/21 6:33:37 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年&#xff0c;我大部分时间都在跟浏览器标签页打交道&#xff0c;直到第一次把桌面应用跑起来&#xff0c;才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词&#xff0c;最开始是在某段时间频繁出现在同事的讨论里&#xff0c;一个用HTML…

2026/10/21 9:32:40 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介&#xff1a;亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档&#xff0c;主要面向智能锁安装人员、终端用户及售后维护者&#xff0c;帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件&#xff0c;大小4.37MB&#xff0c;内容结构清晰&#xff…

2026/10/21 9:32:40 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统&#xff0c;整车要求空载跑到8m/s&#xff0c;电机转速已经拉到额定点&#xff0c;驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令&#xff0c;转速纹丝不动&#xff0c;三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/21 9:32:40 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年&#xff0c;用它写过嵌入式驱动、做过游戏服务端&#xff0c;也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词&#xff0c;我其实挺感慨的——这门语言的难点从来不是语法多&#xff0c;而是知识点之间的耦合太深…

2026/10/21 9:32:40 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介&#xff1a;亚太天能T109滑盖智能锁产品说明书以PDF格式发布&#xff0c;适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开&#xff0c;先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能&#xff0c;再给出完整安装步骤&…

2026/10/21 9:32:40 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历&#xff1a;翻开源码注释、论文摘要或者一份专业报告&#xff0c;每个字都认识&#xff0c;连在一起却像天书。想找人聊聊&#xff0c;身边要么没人懂&#xff0c;要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型&#xff0c;几秒钟之后&a…

2026/10/21 9:31:32 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事&#xff1a;AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里&#xff0c;按宣传口径&#xff0c;本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”&#xff0c;而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起&#xff1a;用户到底在追求什么“封号重开”这四个字&#xff0c;放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流&#xff0c;背后是大量的时间和精力成本。正常情况下&#xff0c;没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”&#xff0c;而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时&#xff0c;就意识到&#xff1a;单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/21 4:27:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →