微信闪退,二维码奔溃分析

admin 2023年4月24日15:35:17评论319 views字数 734阅读2分26秒阅读模式

前言

今晚正准备上床睡觉,突然看见微信群里小伙伴发了这样一张二维码,长按直接导致微信闪退,程序员的好奇心驱使着试试一探究竟.

微信闪退,二维码奔溃分析

微信闪退,二维码奔溃分析

搞起来
砸壳导出/反编译/动态调试一气呵成跑起来,长按此二维码果然出现必现Crash!
Crash地址
如下图所示在0x1f1570c0c地址处出现了内存访问错误,通常意味着程序试图访问一个不存在的内存地址,或者尝试访问已经被释放的内存,或者访问已经越界的内存
微信闪退,二维码奔溃分析
Crash栈
如下图所示,第0栈帧与第1栈帧分别落在了libsystemplatformdylib与libc++1dylib系统库中,而第2帧到第14帧落在 WeChat主可执行文件中,由于符号被裁减的原因,暂时看不出具体函数符号
微信闪退,二维码奔溃分析
获取WeChat可执行文件模块基址
微信闪退,二维码奔溃分析
微信闪退,二维码奔溃分析
寻找具体函数
0x10E2A7500地址处从x8寄存器指向的内存地址中读取一个指针,并将其存储到x8寄存器中。然后通过x8寄存器间接跳转到某个函数的执行地址,EXCBADACCESS错误的原因可能是因为x8寄存器中存储的指针无效,即该指针所指向的内存地址未被初始化或已被释放
微信闪退,二维码奔溃分析
x8寄存器
loc10e2a74d0->loc10e2a74f0存在跳转关系
微信闪退,二维码奔溃分析
 而loc10e2a74d0中存在对x8寄存器的操作x8寄存器被设置为0x111875000这个地址,即与上文中的000000010e2a7500地址指向同一块内存,而000000010e2a74d8处该地址偏移0xd30处的内容被加载到了x1寄存器中。这里的内容应该是一个字符串"UTF-8”的地址
微信闪退,二维码奔溃分析
结论
综上,此次导致微信Crash的元凶可能是特殊文本/字符的编码导致,类似前些年出现的"炸群"字符类似。
MUstangYM:

原文始发于微信公众号(重生信息安全):微信闪退,二维码奔溃分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月24日15:35:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   微信闪退,二维码奔溃分析http://cn-sec.com/archives/1689019.html

发表评论

匿名网友 填写信息