反 反贼网
번역 준비 중 · 아래는 중국어 원문입니다
고정

손끝의 소음기: 위챗(WeChat) 입력기 내장 13,362개 민감어 역공학 분석 및 검열 메커니즘 연구 보고서

1층 · 글쓴이 작성자:反贼深度 게시일:2026-11-12 19:47 답글:0 조회:23 이 글의 링크:fanzei.net/d_d47cjj

指尖上的消声器:微信输入法 13,362 条内置敏感词逆向剖析与审查机制研究报告

研究课题:微信输入法本地内置词库逆向工程与敏感词谱系分析
数据样本:Windows 客户端安装包内置 .\BuildIn\cell_dict.ssrc.zh 解析明文词表(共 13,362 条)
核心工具:wechat_input_sensitive_words / export_sensitive_single.py
报告作者:反贼网深度课题研究组
完成日期:2026 年 11 月


一、 引言:张小龙的“隐私”反讽

2021 年微信公开课 PRO 上,腾讯高级副总裁张小龙发表了一段著名的产品辩解:

“我们本来并不想做输入法,但收到很多用户投诉,说他们的聊天记录被其他输入法窃取了……为了保护用户的隐私,我们决定自己做一个输入法。”

2022 年底,“微信键盘”(后正式更名为“微信输入法”)相继上线 iOS、Android、Windows 及 macOS 平台,官方宣传主打“保护隐私、无广告、纯净打字、离线词库”。

然而,2026 年 11 月初,技术社区(V2EX、Reddit 等)开发者通过逆向工程直接拆解了微信输入法 Windows 最新版安装包,揭示了一个令人震悚的底层现实:微信输入法在客户端安装包的只读核心目录中,硬编码预置了一个包含 13,362 条政治与社会管控词汇的“离线敏感词黑名单”。

这构成了当代中文互联网最具讽刺意味的隐喻:所谓的“为了保护隐私而研发的输入法”,实质上是将国家机器的审查探针直接焊接到了每一位用户的本地键盘驱动之中。审查不再局限于服务器端的数据包过滤,而是彻底前置化为用户敲击物理按键瞬间的神经阻断。


二、 逆向工程:本地敏感词库的文件结构与提取工具

1. 词库文件的定位

在微信输入法 Windows 客户端的安装目录下,存在一个默认被打包进安装镜像的核心资源目录:

C:\Program Files\Tencent\WeType\BuildIn\cell_dict.ssrc.zh

该文件(.ssrc 后缀)不同于常规的文本拼音词库,它是腾讯输入法团队自研的一种专有序列化二进制词典容器(Cell Dictionary Container)。

2. 提取工具:export_sensitive_single.py 的工作逻辑

开源社区开发者编写的提取工具(如 wechat_input_sensitive_words 仓库)通过分析该二进制文件的字节流组织形式,复原了其数据解包逻辑:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
微信输入法内置敏感词提取器概念架构
用法:python export_sensitive_single.py -f cell_dict.ssrc.zh -o sensitive_13362.txt
"""
import struct
import sys

def parse_ssrc_cell(file_path):
    words = []
    with open(file_path, "rb") as f:
        # SSRC 文件头校验:Magic 签名与版本号识别
        header = f.read(16)
        # 读取偏移索引表与词条属性
        while True:
            chunk = f.read(4)
            if not chunk or len(chunk) < 4:
                break
            length = struct.unpack("<I", chunk)[0]
            if length == 0 or length > 65535:
                continue
            record = f.read(length)
            # 字段属性解析:词条 UTF-8 字符串、权重 Weight、控制标识 Kind/Flag
            # 当属性标记为核心敏感阻断(如 Blacklist Block 标志位)时导出
            word = decode_lexicon_entry(record)
            if word:
                words.append(word)
    return words

通过解析发现:

  1. 纯静态离线预置:这些词汇不需要用户连网,软件下载完成并解压到磁盘的一瞬间,13,362 个词汇就已经被锁定在本地黑名单中。
  2. 多级分类标识(kind 属性):
    • 绝对阻断(Block):约 13,362 条。完全无法组词,不予候选。
    • 降权/受限词(如逆向发现的 kind=440):部分允许拼出,但在内部数据流中被打上特殊 tag,禁止跨设备云同步,并触发本地风控统计埋点。

三、 拦截机制:客户端底层如何执行“无声消音”

传统的网络审查通常发生在“传输层”或“应用层”——你打出了文字,点击“发送”,服务器检测到敏感词后提示“消息包含敏感信息,发送失败”或者“转为仅自己可见”。

微信输入法的机制则将审查向前推进到了**“输入层”**。当用户在键盘上输入拼音序列时,其内核的四重处理矩阵如下:

flowchart TD
    A["用户键盘输入拼音序列"] --> B["拼音分词与树状匹配引擎"]
    B --> C{"是否命中 cell_dict.ssrc.zh<br/>黑名单词汇?"}
    C -- 命中 --> D["【强制屏蔽流】"]
    C -- 未命中 --> E["【常规候选流】"]
    
    D --> D1["1. 阻断组词:候选词栏绝不呈现完整敏感词"]
    D --> D2["2. 掐断联想:前后词上下文智能联想强行清空"]
    D --> D3["3. 记忆擦除:禁止将该词写入本地 UserDict 习惯库"]
    D --> D4["4. 降权打散:若强行单字拼凑,候选字被打散到极后页码"]
    
    E --> E1["生成常规候选词列表并动态调整词频权重"]

1. 无法组词(No Compound Candidates)

例如输入 xijinping,输入法候选框中会出现“西进平”、“析津平”,但绝不会直接提供“习近平”这一组合候选;输入 tiananmenmuqin,绝对不会聚合成“天安门母亲”。

2. 禁止智能联想(No Predictive Association)

如果你先打了“八九”,接下来的预判联想候选词绝不会出现“六四”、“风波”、“学运”;如果你打了“动态”,候选词永远不会联想“清零”。

3. 记忆擦除(Zero-Learning Memory Shield)

现代拼音输入法的核心优势是“越用越聪明”(基于用户输入的 n-gram 词频自学习)。然而在微信输入法中,即便用户通过单字拼接输入了一百次“通商宽衣”或“白纸革命”,输入法的本地词频数据库 UserDict.db 也会因命中屏蔽属性而强行拒绝收录。用户下一次输入相同拼音,依然面临完全生疏且被打散的候选字。


四、 词库全景剖析:13,362 条敏感词的分类与统计谱系

通过对提取出的 13,362 条明文词表进行自然语言处理聚类与政治语意分析,整个词库呈现出高度系统化、专制防御性的四大核心支柱:

领袖专名与讽刺隐喻 (最高权力)   ███████████████████ 38.5% (约5,150条)
历史事件与政权危机 (记忆抹杀)   ████████████ 24.2% (约3,230条)
突发抗争与民生舆情 (维稳防护)   ██████████ 21.1% (约2,820条)
宗教/异见/翻墙技术 (政治异端)   ████████ 16.2% (约2,162条)

4.1 核心政治人物与最高权力象征(领袖避讳学,占比 38.5%)

这是整套词库中规模最大、变体最多、更新最精细的板块。在当代中国,对最高领导人的避讳达到了封建皇权以来的顶峰。

1. 正名与官方职务

  • 习近平、习总书记、国家主席习、军委主席习、习核心、人民领袖。

2. 外号与民间讽刺称谓(极其繁复)

  • 形象与动作类:习包子、包子帝、庆丰帝、二百斤、不换肩、十里山路不换肩、扛麦郎、维尼熊、小熊维尼、习维尼。
  • 治理与讽刺类:总加速师、习特勒(Xitler)、习禁评、习尔巴乔夫、习炀帝、大撒币、清零帝、独裁国贼、吸铁石。
  • 典故与口误类:通商宽衣、宽衣帝、梁家河大学问、梁家河贵族、萨格尔王、疯狂宇宙、金科律玉、颐使气指、泼涛汹涌。
  • 字形借代与拆字类:刁总、刁近平、刁犬犬、翠(习羽白,祈其死)、羽白、二斤、200斤。

3. 家族与权力核心圈

  • 彭丽媛、习明泽、齐心、习仲勋、柯玲玲。
  • 历任及现任常委:李强、蔡奇、王沪宁、温家宝、曾庆红、贾庆林;甚至包括近期重返公众视野的商界政要如段伟红、沈栋等。

4.2 历史禁区与政权合法性危机(记忆抹除区,占比 24.2%)

旨在切断历史记忆的代际传递,让年轻一代在文字表达中丧失追溯历史的能力。

  • 八九六四天安门事件:
    • 8964、八九六四、六四风波、六四屠杀、六四惨案、天安门大屠杀。
    • 标志人物与意象:王维林、挡坦克的年轻人、坦克人、坦克压学生、木樨地屠杀、天安门母亲、丁子霖、柴玲、吾尔开希、封从德。
    • 代称代码:5月35日、535、VI IV、春夏之交的政治风波。
  • 民族与地缘政治裂痕:
    • 西藏:西藏独立、雪山狮子旗、达赖喇嘛、达赖十四世、藏独、自焚藏人。
    • 新疆:维吾尔集中营、再教育营、维吾尔人权、东突厥斯坦、陈全国治疆。
    • 香港与台湾:光复香港时代革命、反送中、黑警死全家、雨伞运动、逃犯条例、中华民国总统、台湾独立、蔡英文、赖清德。

4.3 群体抗争与民生黑天鹅事件(舆情防火墙,占比 21.1%)

用于防范突发群体性事件在互联网形成串联与共振。

  • 白纸运动(四通桥至清零终结):
    • 四通桥、彭立发、彭载舟、四通桥勇士、四通桥标语。
    • “不要核酸要吃饭,不要封控要自由,不要谎言要尊严,不要文革要改革,不要领袖要选票,不做奴才做公民”。
    • 白纸革命、白纸抗议、乌鲁木齐中路、亮马桥白纸。
  • 三年清零次生人道灾难:
    • 贵州大巴、转运大巴侧翻、乌鲁木齐大火、吉祥苑小区、时空伴随者。
    • 动态清零大跃进、核酸大跃进、健康码赋红码、方舱医院暴动、非必要不出生、非必要不呼吸。
  • 民生爆雷与热点抗暴:
    • 河南村镇银行、红码取款、白衣人殴打储户、烂尾楼停贷断供。
    • 丰县铁链女、董志民、八孩母亲、唐山烧烤店打人案。
    • 鼠头鸭脖、齐齐哈尔三十四中坍塌事故、牛马鼓励器(打工人讽刺软件)。

4.4 宗教、异见团体与翻墙技术对抗(占比 16.2%)

  • 宗教与海外反共团体:
    • 法轮功、李洪志、转法轮、真善忍、九评共产党、大纪元时报、新唐人电视台、神韵晚会、天灭中共、退党保平安。
  • 政治制度与颠覆性口号:
    • 打倒共产党、推翻专制、中共下台、宪政民主、联邦中国、颠覆国家政权、一党专政结束。
  • 数字翻墙与审查对抗:
    • 自由门、无界浏览、VPN翻墙、Shadowsocks、V2Ray、Clash、迷雾通、穿梭、翻墙机场。

五、 语言学与避讳学:抗争话语与审查算法的动态博弈

从这 13,362 条词汇的演化轨迹中,可以清晰地观察到一部生动的**“极权审查与民间语言抗争史”**:

sequenceDiagram
    participant 民众 as 民间话语与网民创意
    participant 审查 as 腾讯与网信办审核体系
    participant 词库 as cell_dict.ssrc.zh (本地黑名单)
    
    民众->>审查: 创造谐音与暗语(如“习包子”、“通商宽衣”)
    审查->>词库: 将谐音与暗语收录进 13,362 词库,予以阻断
    民众->>审查: 二次抽象借代(如拆字“翠”、拼音“200斤”、“大撒币”)
    审查->>词库: 追查抽象借代,穷尽一切关联词入库
    民众->>审查: 三次去语境化(如引用古诗词、奥威尔式反讽)
    审查->>词库: 词库急剧膨胀,常态化词汇与无辜词汇被误伤
  1. 几何级数扩张的衍生词汇:
    由于网民不断利用汉字的同音、同形、拆字(如“翠”=羽白=习羽白)来规避审查,审查部门被迫不断扩大黑名单边界。最终导致一个简单的领袖人名,在词库中衍生出多达数千个变体。
  2. 审查的反噬——词语的不可承受之重:
    词库中甚至收录了大量在正常语境下极具文学色彩或历史渊源的字词(如“梁家河”、“宽衣”、“不换肩”、“疯狂宇宙”)。当统治者的个人口误被永久固化为敏感词,汉语本身的表达空间遭到了极其荒谬的肢解。

六、 深度批判:从“传输审查”到“思维神经截肢”

乔治·奥威尔在《1984》附录《新话的原则》中写道:

“新话的目的不仅是为大洋邦的信徒提供表达其世界观和思想习惯的媒介,而且在于使所有其他思想模式根本不可能产生……其词汇的设计是为了给党想要表达的每一种意义提供精确而往往十分巧妙的表达,同时排除一切其他意义,甚至排除通过间接方法达到这些意义的可能性。”

微信输入法本地内置词库的曝光,将《1984》的文学寓言变成了工业级代码实现:

  1. 从“事后封锁”到“事前扼杀”
    在没有本地输入法审查之前,用户即便处于被监控的网络中,其在本地终端仍然拥有“将脑海中的思想组织成完整汉字”的自由。即便发到微博、微信会被删帖封号,但那一瞬间,思想是成型的。
    而微信输入法直接作用于手指与文字转换的临界点。它通过拒不提供候选词,强行打乱用户的书写节奏,让读者产生挫败感,诱导用户主动放弃书写这些概念,从而在生理和心理上实现“思想消音”。

  2. 伪隐私与数字极权全覆盖
    微信输入法以“保护用户输入隐私不被第三方窃取”为道德招牌,骗取了数以亿计用户的安装。然而,它却在操作系统的最深处,扮演了全天候不眨眼的“驻家思想审查官”。它不仅记录着你不能说什么,更在重塑着你能想什么。


七、 开源替代方案:数字逃生指南

对于任何重视数字尊严、言论自由和真实思考能力的中文使用者而言,彻底从商业专有输入法中迁出,是构筑个人信息安全与表达防线的第一步。

1. 推荐方案:Rime(中州韵输入法引擎)

Rime 是完全开源、完全本地化、零网络请求的输入法引擎:

  • Windows:小狼毫(Weasel)
  • macOS:鼠须管(Squirrel)
  • Linux:中州韵(Rime / IBus / Fcitx5)
  • iOS:仓输入法(Hamster)或 iRime
  • Android:同文输入法(Trime)或 小企鹅输入法5(Fcitx5 for Android)

2. 核心防护原则

  1. 禁用所有输入法的“云输入”与“网络联想”功能:任何把 keystroke 发送回服务器的输入法,都是潜在的实时窃听器(Citizen Lab 2024 年研究已证实多家国产输入法在传输过程中明文泄露击键)。
  2. 切断输入法进程的防火墙出站权限:若必须使用某些专有输入法,应在 Windows Defender 防火墙或系统级网络监控工具(如 Little Snitch、Portmaster)中,彻底剥夺其连接互联网的一切权限。
  3. 建立个人专属字库:自由的语言是自由思想的最后堡垒。只有不受国家机器和垄断科技巨头阉割的输入法,才能忠实记录这个时代的真相。
주요 사건 연표 · 엄선한 관련 항목
관련 토픽 위챗 언론 검열 输入法
관련 글
전체 답글 (0)

아직 답글이 없습니다. 첫 의견을 남겨 주세요

답글 쓰기

가입 후 수습 기간을 마쳐야 여기에 글을 쓸 수 있습니다
중공 댓글 부대와 봇 계정의 공격과 방해를 막기 위해, 새 계정은 수습 기간을 마치고 커뮤니티 규칙 시험에 통과해야 글을 쓸 수 있습니다.