神奇的异字符:\u0e

  • A+
所属分类:安全文章

前言1:将反诈骗进行到底,百度搜索关键字:郭盛华是骗子,为反诈尽绵薄之力。

神奇的异字符:\u0e


前言2:近日发现微信卡死聊天记录,国庆闲着无聊就研究了一波,发现一个有意思的情况就发文水一篇。



1.微信卡死



  前一段时间有发现一些群聊里有很多人发一段聊天记录,只要点开就会导致微信崩溃的情况。

神奇的异字符:\u0e

感觉原理是个很有意思,于是乎我就研究了一波。


2.剖析原理


2.1细节发现


  通过电脑复制那段字符串到notepad++,发现看上去短短的一句话竟然有7000个字符

神奇的异字符:\u0e


2.2大胆猜测



 为啥这7000多个字符在手机上就只显示短短一串?

神奇的异字符:\u0e

一开始猜测是阿拉伯或者印度语这些从后往前读的文字,为了显示全而导致的压缩问题。后来把字符串复制到谷歌翻译,进行语种检测,发现啥也不是。


既然不是特殊语种,大概率就是特殊字符的原因了。但是这个字符我们也打出来,为了知道是什么字符,我们先把字符进行转码,urlencode,ascii,unicode这些常见的挨个尝试。最终发现可以转成unicode。


2.unicode,神奇的u0e


  把字符串进行unicode转码之后发现对应的unicode为"u0e49",这时候就发现了一个有趣的现象,当多个u0e49在一起的时候,不会显示多个字符,而是把字符在第一个字符上累加。

演示:

转码前:

神奇的异字符:\u0e

转码后:

神奇的异字符:\u0e


这样就真相了,当超多个字符串压缩成一个,就类似缓冲区溢出的原理一样。

只申请了一个字节的内存,但是里面塞了N多个字符串。这大概率就是造成卡死的原因了。

后来通过尝试不仅u0e49会折叠,u0e49附件的字符串也会,下面列举几个:

u0e31:ััััััััััััััััััััััััััััััั

u0e36 :  ึึึึึึึึึึึึ

u0e37 : ืืืืืืืืืืืืืื

u0e39 : ูููููููููููููููููููููููููู

u0e47 : ็็็็็็็็็็็็็็็็็็็็

u0e48 :่่่่่่่่่่่่่่่่่่่่่

u0e49 : ้้้้้้้้้้้้้้้้้้้


3.到处插,只要有编辑框没限制字符大小的都能插



  后来发现这是个通用问题,手机比电脑更容易卡死。大概是因为内存的问题。

本来以为windows/linux的显示也会出现问题,后来尝试后大失所望,竟然分开了,但是这不影响我们插其他APP或者应用。

神奇的异字符:\u0e

dingtalk:在公司大群发一个代码(离职代码)

神奇的异字符:\u0e

写在最后:

祝大家双节快乐,也祝我生日快乐,又大一岁了,还是没找到女朋友,有没有单身适龄的女粉丝请联系我 ~~~~

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: