剪贴板劫持是什么?复制没出错,粘出来的地址却是别人的

剪贴板内容在复制与粘贴之间被恶意替换的示意图
替换发生在复制和粘贴之间的空档,两端都看不出异常。

先说结论:你复制的地址是对的,粘出来的地址「看起来也是对的」——只是中间被换掉了。替换发生在复制与粘贴之间的那几毫秒,不需要你点任何东西,也不会有提示。由此得出一个反直觉的结论:核对「你复制了什么」证明不了任何事,必须核粘贴之后的那一串,而且要核中间,不是只核首尾。

替换发生在哪一刻

把一次正常的复制粘贴拆开看,中间有四步:你按 Ctrl+C,内容写进剪贴板;你切到另一个窗口;你按 Ctrl+V,内容被读出来;目标程序拿到内容。剪贴板劫持(业内叫 clipper,也有人叫地址替换型木马)动的是第二步和第三步之间的那段空档。

它不需要拦截你的键盘,不需要伪造界面,也不需要你确认。对使用者来说,整个过程没有任何异常感——复制的动作正常,粘贴的动作正常,屏幕上出现的也是一串格式完全合法的地址。异常只在结果里,而结果你未必会逐字核对。

这就是它比传统病毒难防的地方:它不破坏任何东西,只做一次静默替换。杀毒软件不一定报,浏览器不会有警告,系统日志里也看不到痕迹。等你发现的时候,钱已经出去了,而链上交易不可撤销。

它是怎么做到的

技术上没有多复杂,麻烦在于这件事在系统层面是完全合法的。

Windows 提供了一套剪贴板监听机制:任何程序都可以向系统注册一个剪贴板监听器(AddClipboardFormatListener),之后每当剪贴板内容变化,系统就会通知它。正常程序用它做剪贴板管理器、做输入增强;恶意程序用同一套接口,做的事就变成了:

  1. 打开剪贴板,读出当前内容;
  2. 用正则表达式判断它像不像某种地址——比特币的 bc1 开头、以太坊的 0x 加 40 位十六进制、门罗的 4 开头等等;
  3. 如果匹配,清空剪贴板,把攻击者的地址写进去;
  4. 你随后按 Ctrl+V,拿到的就是替换后的那一串。

还有一种更原始的实现:不注册监听器,直接每几百毫秒轮询一次剪贴板。微软威胁情报在 2026 年的报告中追踪过一类通过 U 盘快捷方式传播的木马,就是每 500 毫秒检查一次剪贴板,除了替换比特币、以太坊、波场、门罗的收款地址,还能识别 12 词或 24 词的助记词和钱包私钥,得手后经由内置的 Tor 客户端外传。也就是说,同一个程序既能偷你复制过的助记词,也能换掉你即将转出的地址。

值得注意的是它的轮换策略:早期样本只内置一个攻击地址,一旦有人举报,这个地址就会被钱包软件和交易所标记。现在的样本往往内置几千个地址,每次随机取一个,让「拉黑地址」这种防御手段基本失效。

不只是加密货币:四类真实受害场景

中文网络上讲这件事的文章,几乎全部聚焦在币圈。但剪贴板里流过的敏感内容远不止钱包地址,受害面比想象中宽。

场景被换掉的是什么后果
加密货币转账收款钱包地址资金直接进入攻击者账户,链上不可撤销
财务付款供应商银行账号、收款码货款打到别的账户,事后追责极难
命令行操作curl ... | bash 里的下载地址被引导安装真正的后门程序
下载与安装软件安装包的下载链接装到仿冒版本,等于主动交出控制权

第三类和第四类最容易被忽略,因为它们不涉及钱。但一条被替换过的 curl 命令,效果等于你把整台机器的控制权交出去——而它看起来只是一条从文档里复制来的安装命令。

为什么核对首尾没有用

网上流传最广的建议是「转账前核对地址前后几位」。这条建议在五年前是有效的,现在已经基本失效。

原因很直接:既然攻击者知道大家只核首尾,那就生成一批首尾相同、中间不同的地址。钱包地址是密码学生成的,一个人可以离线批量生成无数个地址,从中挑出首尾几位与你目标地址一致的那些,成本极低。粗略扫一眼两头,看不出任何区别。

所以正确的核对方式是三条一起:

  • 在粘贴之后核,不是复制之后核。复制那一刻的内容是对的,核它没有意义。
  • 核中间一段。挑第 8 位到第 16 位这类位置,逐字符比对,不要只看开头结尾。
  • 跟原始来源比对。对照交易所页面或发票上的地址,而不是你上次保存的截图——截图也可能是被换过的副本。
更彻底的办法是绕开复制粘贴。大额转账用扫码代替手输或粘贴:二维码里编码的是完整地址,劫持程序改不了图片。或者用硬件钱包——它会在自己的屏幕上显示收款地址,那个屏幕不在电脑的控制范围内。

五条自查:你的机器是不是已经被盯上

剪贴板劫持本身几乎没有可感知的症状,但投放它的那套东西通常没那么干净,会露出别的破绽。按顺序查:

  1. 粘贴同一段内容两次,看结果是否一致。复制一次,粘贴,再粘贴一次。如果两次得到的文本不同,或者内容在你没操作的情况下自己变了,问题很严重。
  2. 检查启动项。任务管理器的「启动」标签页、shell:startup 目录、注册表的 Run 键,看看有没有不认识的常驻程序。
  3. 检查计划任务。很多样本靠计划任务实现开机自启,尤其是名字伪装成系统组件的那些。
  4. 检查浏览器扩展。一个有「读取剪贴板」权限的扩展,可以完全绕过操作系统层面的任何检查,在网页内部就把事办了。不用的扩展直接删掉,不要只禁用。
  5. 回想最近的安装来源。破解软件、游戏外挂、来路不明的「交易机器人」、搜索结果里的广告链接——这几类是主要传播渠道。装过其中一个,就该做一次完整扫描。

六条防护:按投入产出排序

这里不给一堆「保持警惕」的空话,只列具体动作,从上到下性价比依次递减。

  • 敏感操作前先做一次自检:复制一段无关文字,粘贴出来看是否原样。这是成本最低的一次探测。
  • 只从官方渠道装软件,尤其是钱包、交易所客户端、远程控制类工具。搜索结果的广告位是仿冒安装包的重灾区。
  • 清理浏览器扩展。只留你真正在用的,权限里带「读取和更改剪贴板」的,逐个问一句「它凭什么需要这个」。
  • 大额转账分两步:先转一笔小额,确认到账后再转剩余。这条在所有安全建议里最枯燥,也最有效。
  • 开启系统的剪贴板访问提示。新版 macOS 会在应用读取剪贴板时给出提示,Windows 也可以借助安全软件监控。有提示不等于能挡,但能让你在异常时察觉。
  • 企业环境加一条流程:付款账号变更必须走电话回访,不接受通过聊天工具发来的账号。技术手段挡不住的部分,靠流程兜住。

一个反常识:剪贴板管理器在这里是取证工具

直觉上会觉得「记录所有复制内容」本身就是风险,所以安全场景下应该关掉历史。这个判断只对了一半。

风险是真的:如果你的剪贴板历史长期保存着密码、验证码、证件号,那它确实是一个需要保护的数据集合。但如果已经怀疑自己被劫持,历史记录反而变成最有用的东西——它会留下你复制时的内容和粘贴时的内容两份记录,两者一对比,替换发生在哪一刻、被换成了什么,一目了然。纯剪贴板没有这个能力,因为新内容一进来,旧的就被顶掉了。

实务上的折中办法是:开着历史,但排除敏感来源。主流剪贴板管理器都支持按应用排除——把密码管理器、网银客户端、证件类工具加进排除列表,从这些程序复制的内容不写入历史。这样既保留了「可回溯」的能力,又不会把最敏感的东西留在库里。以 ClipBD 为例,排除列表在「设置 → 隐私」里配置,文本、图片、文件、链接默认都会记录,被排除的应用除外。

常见问题

不装任何来路不明的软件,是不是就不会中招?

大概率是,但不是绝对。浏览器扩展、被篡改的下载镜像、供应链攻击都能在你「以为是官方」的情况下投毒。所以防护的重点不该只放在「别乱装」上,还要放在「装错了也能兜住」——也就是大额操作分步确认、敏感账号单独隔离。

重启电脑能不能清掉?

清不掉。剪贴板内容会随重启消失,但劫持程序本身通过启动项、计划任务或服务实现持久化,重启后照样运行。真正需要清掉的是那个程序,不是剪贴板。

手机上会有剪贴板劫持吗?

有,但形态不同。iOS 和 Android 都会在应用读取剪贴板时给出提示,攻击面主要在恶意 App 和输入法。判断方法类似:如果某个 App 频繁提示「已读取剪贴板」,而你没有在它里面粘贴任何东西,值得警惕。

已经转错账了怎么办?

加密货币基本无法追回,链上交易不可撤销,能做的只有记录交易哈希、地址、时间,向交易平台和属地网警报案。银行转账要立刻联系银行和收款行申请止付,时效性极强,越早越好。

相关内容

把历史记录留在自己手里

ClipBD 自动记录每次复制,支持文本、图片、文件与链接,可按关键词检索后直接重新粘贴。Windows、macOS、Linux 均可安装,基础功能免费。

免费下载 ClipBD