asLody/AndHook

3.5.8版本hook微信内部触发非常频繁的log.i函数必崩(附日志)

sudami opened this issue · 8 comments

一加3T
安卓7.1.1
微信6.6.6
AndHook 3.5.8

hook的是微信内部 "com.tencent.mm.sdk.platformtools.w.java" 中的打印消息的函数:
public static void i(String arg11, String arg12, Object[] arg13)

Hook相关代码示例:
3
4

错误日志截图(完整日志见附件):
1
2

@Rprop
log_2018-5-14.txt

@Rprop 3.5.9的AAR,加载so会失败,导致微信闪退
1

我用3.5.8的源码,加载so也会失败,所以我上次都是改动了一下你的源码,才加载so成功的,很奇怪啊。
2

加载so失败导致现在没法测试你给的3.5.9是否有效,怎么办呢?!

嗯,用3.5.9.aar里面的so替换了,一样导致微信闪退,问题还是没有解决,错误日志:
3

是不是还是JIT的问题啊?你再研究研究呗 @Rprop
log_2018-5-16.txt

Rprop commented

给全日志我, 不要只留一部分, 敏感信息你自行去掉就好了, 至少从SO加载开始

Rprop commented

不调用原函数问题依旧的话, 那应该是其它问题了, 我再想想.
这个引发的原因是执行JIT Code Cache完全回收系统设置了checkpoint, 但是exception却意外的为NULL了, 可以的话把libart.so提取出来看看

不调用原始函数,还是一样的闪退崩溃,蜜汁尴尬

我用Andhook的xposed方式进行hook以后,在过滤函数中不调用原始的w.i函数,就不会挂
所以暂时解决办法是:
param.setResult(null);

如果博主能有精力彻底解决这个问题当然是更好啦 :-)
结贴