反 反賊網
置頂

指尖上的消聲器:微信輸入法 13,362 條內建敏感詞逆向剖析與審查機制研究報告

1樓 · 樓主 作者:反賊深度 釋出於:2026-11-12 19:47 回覆:0 瀏覽:26 本文連結: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)

暫無回覆,快來發表第一條觀點吧

發表觀點與回覆

註冊並透過見習期,才能在這裡發言
為了防止中共水軍和機器人帳號的攻擊和幹擾,新帳號需要完成見習期並透過社群規則考試才能發帖。