Trezor硬件钱包取证:加密备份提取与压缩包解析实战
简介这份PDF文档聚焦硬件钱包数字取证这一细分领域面向CTF-Misc方向的学习者、数字取证人员与安全研究人员系统讲解如何从Trezor设备中提取加密备份压缩包。内容从Trezor硬件钱包的工作原理、存储格式与备份策略讲起逐步深入到固件分析与接口逆向、加密备份提取流程、压缩包结构解析、解密算法与密钥恢复、数据完整性验证并延伸至法律与道德考量及最佳实践建议目录章节完整、条理清晰支持阅读器大纲跳转与快速定位。资源包内含1个PDF文件大小约4.34MB页面元素与图表显示正常便于查阅。目前已有86人学习关注。读者可借此掌握固件获取、USB通信协议分析、AES加密层解析、KDF密钥派生与哈希校验等关键技术环节理解非侵入式数据提取与证据链保全的完整思路适合作为硬件钱包取证入门与进阶的参考材料。1. 硬件钱包取证从Trezor设备中提取加密备份压缩包数字资产纠纷进入司法程序后取证人员常遇到一个尴尬局面涉案的Trezor硬件钱包明明就在证物袋里可里面的加密备份压缩包却像锁进保险柜的钥匙——设备本身不联网、私钥不出芯片、固件还带签名校验。这份文档把整条链路拆成了可复现的步骤从物理连接到固件逆向再到加密备份的提取与压缩包结构解析覆盖Trezor One和Model T两代主流设备。它适合数字取证从业者、安全研究人员以及需要处理加密资产证据链的技术人员。CTF-Misc方向里那些文件结构分析、编码转换、隐写识别的思路在这里同样用得上——只不过战场从虚拟题目换成了真实设备。2. Trezor存储机制与取证环境搭建先搞懂它怎么藏再谈怎么取2.1 BIP32/BIP39/BIP44三层结构决定了备份长什么样Trezor的密钥管理不是随便存一个文件那么简单。它遵循BIP32分层确定性钱包结构从一个主种子派生无限数量的私钥和地址BIP39把主种子编码成12或24个助记词方便用户抄写备份BIP44则定义了不同币种的派生路径比如比特币通常是m/44/0/0以太坊是m/44/60/0。这三层标准叠加的结果是设备内部存储的加密备份压缩包本质上是对主种子及相关元数据的封装解压后能还原出整个钱包的派生体系。取证时首先要确认目标设备的固件版本因为不同版本对备份文件的封装格式可能有差异。Model T和Trezor One在存储芯片选型和固件架构上也不完全一致前者用了更先进的处理器和彩色触摸屏后者结构更简单。确认型号和固件版本后才能选择匹配的提取路径。2.2 取证工作站与隔离环境的配置清单搭建取证环境的核心原则是不污染证据、不触发设备自毁、不引入外部干扰。我一般会按下面的清单来准备类别具体项说明操作系统Linux取证发行版经过数字签名验证关闭不必要的USB自动挂载服务硬件防静电工作台、接地手环防止静电损坏设备PCB隔离法拉第笼或屏蔽袋阻断无线信号防止设备与外界通信连接专用USB数据线不使用公共线缆避免被植入恶意芯片工具链binwalk、radare2、Wireshark、USBpcap固件分析、通信抓包存储加密移动硬盘存放提取的备份文件设置访问权限环境搭建完成后先别急着插设备。用lsusb确认当前系统没有识别到任何Trezor相关设备记录基线状态。然后启用操作系统的审计功能把USB设备接入事件全部记下来。# 记录USB设备接入基线 lsusb /evidence/usb_baseline_$(date %Y%m%d_%H%M%S).txt # 启用udev事件监控实时记录设备插拔 udevadm monitor --udev --property /evidence/udev_monitor.log 这两条命令的作用是建立证据链的时间锚点。第一条把当前USB设备列表存档后续插拔设备后可以对比差异第二条持续监控udev事件任何USB设备的接入和断开都会被记录包括厂商ID、产品ID和序列号。参数上--udev限定只监控udev事件--property输出详细属性日志重定向到证据目录。2.3 设备识别与初始哈希校验连接Trezor设备后系统通常会识别到厂商ID为0x534c的USB设备。用lsusb -v可以查看详细描述符确认设备型号和固件版本信息。这一步的关键是在向设备发送任何命令之前先对设备存储的初始状态做哈希校验。# 查看Trezor设备详细信息 lsusb -d 534c: -v 21 | tee /evidence/trezor_usb_descriptor.txt # 如果设备以存储模式挂载计算初始哈希 if [ -b /dev/sdX ]; then sha256sum /dev/sdX /evidence/device_initial_hash.txt filsusb -d 534c:过滤出厂商ID为0x534c的设备-v输出详细描述符包括bcdDevice字段固件版本和iSerial字段序列号。如果设备以USB存储模式挂载某些固件版本会这样用sha256sum对块设备做全盘哈希作为后续验证的基准。注意/dev/sdX要替换成实际设备节点操作前务必用lsblk确认别把取证工作站自己的硬盘给哈希了。2.4 证据链文档与时间戳同步取证过程中每一步操作都要留痕。我习惯用脚本自动记录操作日志包括时间戳、操作人员、执行的命令和返回结果。时间戳统一用NTP同步到可信时间源避免不同设备之间时间偏差导致证据链断裂。# 同步时间并记录 ntpdate -u pool.ntp.org echo Time synced at $(date -u %Y-%m-%dT%H:%M:%SZ) /evidence/chain_of_custody.log # 封装操作日志函数 log_action() { echo [$(date -u %Y-%m-%dT%H:%M:%SZ)] $1 /evidence/chain_of_custody.log } log_action Device connected, initial hash recordedntpdate -u强制与上游时间服务器同步-u表示使用非特权端口。日志格式统一用ISO 8601 UTC时间避免时区歧义。log_action函数封装了日志写入后续每执行一个关键操作就调用一次保证证据链文档的连续性。3. 固件分析与接口逆向把设备通信的黑匣子撬开3.1 固件获取的三条路径拿到设备后第一步是获取当前运行的固件副本。常见做法有三种从官方发布渠道下载对应版本的固件包、通过调试接口从芯片直接读取、在设备运行时转储内存。官方固件包最容易获取但可能和设备实际运行的版本有差异物理芯片读取最准确但需要拆机并连接SPI flash读取器运行时内存转储介于两者之间需要利用调试接口。# 用binwalk识别固件结构 binwalk firmware.bin # 提取固件中的文件系统 binwalk -e firmware.bin # 用radare2做初步函数识别 r2 -A firmware.bin -c afl -q functions_list.txtbinwalk firmware.bin扫描固件中的嵌入文件系统、压缩数据和可执行代码段输出偏移地址和类型。-e参数自动提取识别到的内容到_firmware.bin.extracted目录。r2 -A让radare2自动分析二进制afl列出所有识别到的函数输出重定向到文件方便后续检索。注意固件可能被加密或压缩binwalk不一定能直接识别这时候需要先分析引导加载程序的解密逻辑。3.2 USB通信协议抓包与分析Trezor通过USB HID协议与主机通信命令和响应都有固定格式。用Wireshark配合USBpcap驱动可以捕获完整的通信流量。抓包时进行一些基本操作——查看余额、发起小额交易、尝试备份——以便获取足够的样本。import usb.core import usb.util # 查找Trezor设备 dev usb.core.find(idVendor0x534c, idProduct0x0001) if dev is None: raise ValueError(Device not found) # 设置配置并获取端点 dev.set_configuration() cfg dev.get_active_configuration() intf cfg[(0, 0)] ep_out usb.util.find_descriptor( intf, custom_matchlambda e: usb.util.endpoint_direction(e.bEndpointAddress) usb.util.ENDPOINT_OUT ) ep_in usb.util.find_descriptor( intf, custom_matchlambda e: usb.util.endpoint_direction(e.bEndpointAddress) usb.util.ENDPOINT_IN ) # 发送初始化命令并读取响应 def send_command(cmd, datab): msg cmd.to_bytes(2, big) len(data).to_bytes(4, big) data ep_out.write(msg) response ep_in.read(64, timeout5000) return bytes(response) # 示例发送Initialize命令0x0000 resp send_command(0x0000) print(resp.hex())这段代码用pyusb库直接与Trezor设备通信。usb.core.find根据厂商ID和产品ID定位设备set_configuration激活默认配置。find_descriptor分别找到OUT和IN端点后续通过这两个端点收发数据。send_command函数把命令字、数据长度和数据拼接成Trezor的通信帧格式写入OUT端点后从IN端点读取响应。参数上timeout5000设置5秒超时避免设备无响应时脚本卡死。实际取证中Initialize命令返回的payload包含设备型号、固件版本、PIN保护状态等信息是后续构造提取命令的基础。3.3 命令集识别与分类通过分析抓包数据和固件反汇编结果可以把Trezor的命令集分成几类设备管理类Initialize、Features、SetPin、钱包操作类GetAddress、SignTx、备份相关类BackupDevice、RecoveryDevice。备份相关命令是取证的重点目标因为加密备份压缩包通常通过这类命令触发或导出。# 用tshark过滤USB HID流量中的Trezor命令 tshark -r trezor_capture.pcap -Y usb.transfer_type 0x01 -T fields -e usb.capdata usb_payloads.txt # 统计命令字分布 cut -d: -f1 usb_payloads.txt | sort | uniq -c | sort -rntshark -r读取抓包文件-Y应用显示过滤器usb.transfer_type 0x01筛选中断传输HID协议常用。-T fields -e usb.capdata只输出payload字段方便后续分析。第二条命令提取payload的前两个字节命令字统计出现频率快速定位高频命令。注意USB HID的payload可能被分段需要根据协议规范重组。3.4 安全机制绕过的边界与限制Trezor的PIN码验证、设备锁定和固件签名校验是取证的主要障碍。PIN码输入处理通常涉及哈希和加盐直接逆向验证函数可能找到时序攻击或逻辑漏洞但现代固件版本已经修补了大部分已知问题。设备锁定状态由固件中的计数器控制多次错误输入后锁定时间指数增长硬绕过可能触发自毁机制。固件签名验证绕过需要修改引导加载程序风险极高可能永久损坏设备。注意任何绕过安全机制的操作都必须在合法授权下进行且要评估设备损坏和数据丢失的风险。非破坏性方法优先物理拆解和固件修改是最后手段。4. 加密备份提取与压缩包解析从设备到可读数据4.1 数据提取命令的构造与发送在分析清楚通信协议后可以构造针对性的命令来请求备份数据。Trezor的备份相关命令通常需要设备处于解锁状态且可能要求用户确认。取证场景下如果设备已解锁可以直接发送命令如果未解锁需要先通过合法途径获取PIN码或利用已授权的调试接口。# 构造备份数据请求命令示例命令字0x0020 BACKUP_CMD 0x0020 # 发送请求并接收多包响应 def extract_backup(ep_out, ep_in): ep_out.write(BACKUP_CMD.to_bytes(2, big) (0).to_bytes(4, big)) chunks [] while True: try: chunk ep_in.read(64, timeout3000) chunks.append(bytes(chunk)) # 检查响应中的结束标志 if chunk[0] 0x3f: # 假设0x3f表示传输结束 break except usb.core.USBTimeoutError: break return b.join(chunks) backup_data extract_backup(ep_out, ep_in) with open(/evidence/encrypted_backup.bin, wb) as f: f.write(backup_data)这段代码演示了多包响应的接收逻辑。Trezor的备份数据可能超过单包64字节的限制需要循环读取直到收到结束标志。timeout3000设置3秒超时避免设备无响应时无限等待。接收到的数据拼接后写入证据文件。实际命令字和结束标志需要根据固件逆向结果确定不同版本可能不同。4.2 压缩包格式识别与结构解析提取到的加密备份通常是一个自定义格式的压缩包可能包含文件头、元数据区、加密数据块和索引区。用十六进制编辑器查看文件头识别魔数magic number和版本字段。# 查看文件头 xxd /evidence/encrypted_backup.bin | head -20 # 用binwalk识别内部结构 binwalk /evidence/encrypted_backup.bin # 尝试用7z列出内容如果格式兼容 7z l /evidence/encrypted_backup.binxxd以十六进制加ASCII形式显示文件内容前20行足以看清文件头结构。binwalk扫描内部是否有嵌套的压缩数据或文件系统。7z l尝试列出压缩包内容如果Trezor使用了标准压缩格式如gzip、zlib可能直接识别。但Trezor的备份格式通常是自定义的需要根据固件中的解析逻辑手动实现解包。4.3 加密层分析与密钥派生Trezor的备份数据通常用AES-256加密密钥派生依赖用户PIN码和设备唯一标识符。密钥派生函数KDF可能是PBKDF2、scrypt或自定义算法。分析固件中的KDF实现确定迭代次数、盐值来源和输出密钥长度。import hashlib from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes # 假设KDF是PBKDF2-HMAC-SHA512迭代10000次 def derive_key(pin, device_id, salt): return hashlib.pbkdf2_hmac( sha512, pin.encode() device_id, salt, 10000, dklen32 ) # 解密AES-256-GCM def decrypt_backup(encrypted_data, key, iv, tag): cipher Cipher(algorithms.AES(key), modes.GCM(iv, tag)) decryptor cipher.decryptor() return decryptor.update(encrypted_data) decryptor.finalize()pbkdf2_hmac的第一个参数是哈希算法第二个是密码和盐的拼接第三个是盐值第四个是迭代次数dklen32输出32字节密钥用于AES-256。解密时用GCM模式需要提供IV和认证标签。实际参数迭代次数、盐值来源、IV长度必须从固件逆向中获取不能凭猜测。4.4 数据完整性验证与证据固定解密后的数据需要验证完整性。计算SHA-256哈希与设备或备份元数据中记录的哈希值比对。同时检查内部文件关系是否合理比如时间戳是否连续、索引区是否指向有效数据块。# 计算解密后数据的哈希 sha256sum /evidence/decrypted_backup.bin /evidence/decrypted_hash.txt # 与设备记录的哈希比对 diff /evidence/decrypted_hash.txt /evidence/device_recorded_hash.txt如果哈希不匹配需要回溯提取和解密过程检查是否有数据丢失或密钥错误。验证通过后把解密数据、哈希值、操作日志一起打包作为证据固定。5. 避坑与常见问题那些让我翻过车的细节5.1 设备连接后系统自动挂载导致数据污染现象Trezor设备插入取证工作站后操作系统自动挂载为USB存储设备写入了一些系统文件。原因某些Linux发行版默认启用USB自动挂载而Trezor的某些固件版本会暴露一个存储接口。解决在取证前禁用自动挂载用udisksctl或修改/etc/fstab屏蔽。连接后先用lsblk确认设备节点不要直接访问。5.2 固件版本不匹配导致命令无响应现象按照文档构造的提取命令发送后设备返回错误或超时。原因Trezor不同固件版本的命令字和通信格式有差异文档可能基于旧版本。解决先用Initialize命令获取设备实际固件版本再对照对应版本的固件逆向结果调整命令格式。不要跨版本套用命令。5.3 哈希校验值在传输过程中被截断现象提取的备份数据哈希值与设备记录不一致但数据看起来完整。原因USB传输过程中可能发生分包如果接收逻辑没有正确处理多包拼接会导致数据截断。解决在接收端实现完整的包重组逻辑根据协议中的长度字段确认接收完整。接收完成后先校验长度再计算哈希。5.4 时间戳不同步导致证据链被质疑现象取证日志中的时间与设备内部时间戳偏差较大法庭上被质疑证据可靠性。原因取证工作站未与可信时间源同步或设备内部时钟本身有偏差。解决取证前强制NTP同步记录同步前后的时间差。设备内部时间戳作为参考不作为绝对时间依据。5.5 解密后数据包含多个钱包的派生路径现象解密备份后发现数据中包含多个币种的派生路径和地址不确定哪个是目标。原因Trezor支持多币种一个种子可以派生多个币种的钱包。解决根据案件背景和交易记录确定目标币种和派生路径。用BIP44的路径规则筛选不要盲目导出所有地址。6. 进阶技巧用CTF-Misc思路快速定位备份中的关键数据CTF-Misc里的文件结构分析和编码转换技巧在硬件钱包取证中同样好用。拿到解密后的备份数据先用file和binwalk快速识别内部结构再用strings提取可读字符串往往能快速定位到助记词、派生路径和元数据。# 识别解密数据的类型 file /evidence/decrypted_backup.bin # 提取可读字符串过滤长度大于6的 strings -n 6 /evidence/decrypted_backup.bin /evidence/strings_output.txt # 搜索BIP39助记词特征常见单词列表 grep -iE abandon|ability|able|about|above /evidence/strings_output.txtfile命令根据魔数判断文件类型可能是JSON、CBOR或自定义二进制格式。strings -n 6提取长度至少6的可打印字符序列过滤掉噪声。grep用BIP39单词列表的前几个词做模式匹配快速定位可能的助记词区域。注意助记词可能被加密或编码直接搜索不一定命中但能缩小范围。另一个技巧是用CyberChef的魔法功能自动识别编码。把备份数据的十六进制粘贴进去让CyberChef尝试Base64、Hex、URL编码等常见转换有时候能直接还原出可读的JSON结构。我一般会先用xxd把数据转成十六进制再丢进CyberChef的Magic面板让它自动跑一遍。# 用Python尝试多种编码解码 import base64 import binascii data open(/evidence/encrypted_backup.bin, rb).read() # 尝试Base64解码 try: decoded base64.b64decode(data) print(Base64 decoded:, decoded[:100]) except Exception: pass # 尝试Hex解码 try: decoded binascii.unhexlify(data) print(Hex decoded:, decoded[:100]) except Exception: pass这段脚本对备份数据尝试Base64和Hex解码如果成功会打印前100字节。实际取证中备份数据可能经过多层编码需要组合使用。注意解码失败时捕获异常避免脚本中断。从那以后我每次处理加密备份都强制走一遍「先识别文件头、再提取字符串、最后尝试编码转换」的流程哪怕看起来像是纯二进制数据。这个习惯帮我省过好几次来回折腾的时间。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

artcraft:从创意到成品的执行方法论与流程控制

artcraft:从创意到成品的执行方法论与流程控制

1. 从“artcraft”这个名字说起:它到底想解决什么问题 第一次看到“artcraft”这个词,我脑子里蹦出来的不是某个具体工具,而是一种很朴素的组合感——art(艺术、审美、表达)加上 craft(手艺、工艺、打磨&am…

2026/10/17 12:11:42 阅读更多 →
手写C++递归下降语法分析器:326行实现AST构建与调试

手写C++递归下降语法分析器:326行实现AST构建与调试

简介:本资源是一份面向高校计算机专业本科生的编译原理课程实践材料,聚焦语法分析核心环节,提供基于递归下降子程序法的C完整实现方案,帮助学习者将文法理论转化为可运行、可评测的分析器代码。压缩包共2个文件(17KB&a…

2026/10/17 12:11:42 阅读更多 →
OV9650嵌入式Linux驱动实战:CAMIF+SCCB+DMA全链路解析

OV9650嵌入式Linux驱动实战:CAMIF+SCCB+DMA全链路解析

简介:本资源是一套基于Linux平台的OV9650摄像头驱动及配套测试程序,面向嵌入式Linux开发者、ARM平台(如S3C2410/S3C2440/Exynos4412)初学者与项目实践者,解决ARM架构下V4L2标准摄像头驱动移植与图像采集验证难题。驱动…

2026/10/17 12:11:42 阅读更多 →

最新新闻

Django电商性能优化:FastDFS、页面静态化与Redis缓存实战

Django电商性能优化:FastDFS、页面静态化与Redis缓存实战

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

2026/10/17 13:15:23 阅读更多 →
用Node.js手写热重载:原理、实现与踩坑指南

用Node.js手写热重载:原理、实现与踩坑指南

如果你每天都在"改代码→切浏览器→按刷新→等页面加载"这个循环里待着,说明你的前端开发工作流还缺了最后一环自动化。这个需求太常见了,几乎所有现代构建工具都内置了热更新能力,但很多人只是把它当黑盒使用——页面为什么自己刷…

2026/10/17 13:15:23 阅读更多 →
储能电池均衡方案选型:MP2642GR-Z与MK24FN1M0VDC12实战

储能电池均衡方案选型:MP2642GR-Z与MK24FN1M0VDC12实战

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

2026/10/17 13:15:23 阅读更多 →
Xenomai双内核实时系统:Linux 4.9环境搭建与延迟排查实战

Xenomai双内核实时系统:Linux 4.9环境搭建与延迟排查实战

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

2026/10/17 13:15:23 阅读更多 →
C语言经典题解析:水手分叶子的倒推法与递推实现

C语言经典题解析:水手分叶子的倒推法与递推实现

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

2026/10/17 13:15:23 阅读更多 →
ORM选型:MyBatis、MyBatis-Plus与JPA怎么选

ORM选型:MyBatis、MyBatis-Plus与JPA怎么选

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

2026/10/17 13:14:22 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →