不知道大家有沒有發現,這幾天千問通義的分享文案悄悄改了,仔細看每個字都多了“一點”,並且這個點並無法單獨選中。
![]()
注意每個字的上、下方有額外的點
原理探究
把這個字轉爲Unicode看看,發現這是兩個字符,這個點的unicode編碼是0308
![]()
拿去unicode官網查一下,找到這個字符對應的區域
可以看到0300-036F這個區間,是屬於“組合附加符號”,意思就是這些字符可以附加到任何文字上,讓他們看起來就是一體的。
並且這是屬於可見但不佔位的字符,所以無法被選中。
![]()
知道了這個,那我們就可以爲所欲爲的造“異形字”了
![]()
千問爲什麼要這麼做?
目的只有一個,那就是儘可能的繞過社交平臺的敏感詞檢測,防止被封殺
擴展:還有哪些被非法使用的字符
康熙部首
這個此前在小紅書看到還蠻多人用的,效果如圖所示
如果你不換字體就不會發現這些字它不是常用字
![]()
小紅書上的異形字
![]()
短信中經常出現
圖裏標出來的不是現代漢語,屬於康熙部首,這兩者在unicode是不同區域,由於康熙部首中有大量和現代漢語相同的字(但編碼不同),所以就可以利用這點進行替換文字
是不是有同學抱怨手機短信設置了關鍵字但還是有沒攔住的,現在知道原理了吧。
零寬字符
零寬,就是沒有寬度,看不見(代表有200B、200C、200D、FEFF)
爲啥特地提這個呢?
因爲很多很多的程序過濾使用正則表達式\s+,但是\s+只會過濾空格、水平/垂直製表符、換行、回車和換頁符。
所以在正常字符中加入零寬字符,人眼既看不見,又能繞過審覈程序
控制符
看過圖片木馬科普那期的同學應該很熟悉了。顧名思義,控制符可以控制文本的顯示方向。而如果程序沒處理好,就可以製造出如圖不一致的消息
同樣,如果審覈系統是正則匹配\s+,那一樣無法過濾掉該類字符,導致關鍵詞無法命中

同一條消息,安卓顯示51,蘋果顯示15
其他
像全角字母數字、數學字母、同形字母、相似漢字這些我就不舉例了,這些應該是大家知道得最多的“騙過程序但是人又看得懂的手段”。
值得一提的是,20年的時候還有使用 rn = m 來僞造微軟域名,與漢字中“米果”可謂異曲同工
![]()
真假微軟名稱
本期解析就到這了,如果有什麼想看的可以評論區給我留言
參考資料(#替換爲.)
中文字符Unicode編碼範圍
lddgo.#et/string/cjk-unicode
unicode標準
unicode#org/charts/
千文用到的組合附加符號
unicode#org/charts/PDF/U0300.pdf
更多遊戲資訊請關註:電玩幫遊戲資訊專區
電玩幫圖文攻略 www.vgover.com
