微信闪退Bug罪魁祸首竟是二维码引擎,附源代码分析

建议别尝试:转发这个二维码到群里,3秒后你会回来骂我

crash

近日,网传微信识别上方二维码就会出现闪退BUG,小编也忍不住尝试了一下,果然,一识别该二维码微信立马就出现了闪退的现象:

image

且会出现“微信运行异常,建议前往软件商店更新至最新版本”的提示。

 

image

目前该二维码除了导致闪退外未发现其他副作用。

对于此次闪退事件,有网友发文解释称:目前微信闪退崩溃是因为 OCR 识别系统出现了内存崩溃导致的,这个图片导致了微信内存泄漏,所以会闪退崩溃。闪退问题不会涉及个人隐私问题和封号和资金泄漏问题,目前该功能已经在加急加班的修复中

图片[4]-微信闪退Bug罪魁祸首竟是二维码引擎,附源代码分析-天明的博客

不过上述对于微信闪退的解释也只是网友观点,截止发稿,腾讯官方还未公开回应。

前面有提到,由于这张二维码图片导致内存泄漏,进而引发微信闪退。而造成此问题的根源是 “微信二维码引擎”——

  1. 它会自动识别聊天列表中的二维码

  2. 当用户打开聊天列表,微信二维码引擎识别到这张二维码的时候出现了空指针异常,导致二维码模块崩溃

  3. 最终 “祸及” 整个微信客户端

另外,不只是微信,其他腾讯系的软件如果使用了同样的二维码引擎,应该都有这个问题。参考此issue的反馈

https://github.com/opencv/opencv_contrib/issues/3478

 

image

从公开的资料可知,该引擎已在 2021 年开源,并合并到了 OpenCV。

开源地址:https://github.com/WeChatCV

OpenCV 全称为 Open Source Computer Vision Library,是一个跨平台的开源计算机视觉和机器学习软件库,可用于开发实时的图像处理、计算机视觉以及模式识别程序。

 

image

根据开发者的分析,引发微信闪退的二维码属于 “畸形二维码”,这类二维码包含的错误数据块会导致微信二维码模块中的libqbar.so崩溃,进而引发软件闪退。

下面内容来自开发者的分析:

这是一张用微信扫描就会 crash 的二维码,应该是微信 OCR 的实现有问题,以及如果发在群聊里可能会导致群聊的人都闪退(因为微信会自动识别二维码)

UPDATE: 腾讯系的软件应该都有这个问题

感觉主要出锅的地方在:

 

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容