Git Product home page Git Product logo

gh0u1l5 / wechatspellbook Goto Github PK

View Code? Open in Web Editor NEW
1.7K 1.7K 444.0 431.08 MB

Wechat Spellbook 是一个使用Kotlin编写的开源微信插件框架,底层需要 Xposed 或 VirtualXposed 等Hooking框架的支持,而顶层可以轻松对接Java、Kotlin、Scala等JVM系语言。让程序员能够在几分钟内编写出简单的微信插件,随意揉捏微信的内部逻辑。

License: MIT License

Kotlin 99.63% Shell 0.37%
kotlin reverse-engineering wechat xposed

wechatspellbook's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wechatspellbook's Issues

自动下载聊天图片

大神,问一下,我研究了源码后,想要实现一个功能,就是收到图片,视频可以实现自动下载,而不用每次都要点击查看原图,或视频点击之后才下载。可是实在是愚笨,找不到实现的入口,hook了几个方法,发现都不是。能不能指点一二,谢谢!!

偶尔打开会报 MicroMsg_Crash

环境:
VirtualXposed
微信6.6.6
一加5
Android 8.1

完整报错信息:

 A/MicroMsg_Crash: Process:            com.tencent.mm
    Crash Thread:       19968(total:111)
    Date/Time:          2108-05-12 +8.00 00:31:24.262
    Live Time:          3s
    Device:             ONEPLUS A5000 android-27
    Exception info:     
    Siginfo:            errno:0, pid:20, uid:0, process:UNKNOWN
05-12 00:31:24.277 19968-19968/? A/MicroMsg_Crash: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    Build fingerprint: OnePlus/OnePlus5/OnePlus5:8.1.0/OPM1.171019.011/04241055:user/release-keys
    pid: 19968, tid: 19968(main thread)  >>> com.tencent.mm <<<
    signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000014
05-12 00:31:24.304 19968-19968/? A/MicroMsg_Crash:   #00  pc 0xa76b8  /system/lib/libart.so (art::OatQuickMethodHeader::ToDexPc(art::ArtMethod*, unsigned int, bool) const+4292395031)
      #01  pc 0x159adf  /system/lib/libart.so (art::FaultManager::IsInGeneratedCode(siginfo*, void*, bool)+722)
      #02  pc 0x1595d5  /system/lib/libart.so (art::FaultManager::HandleFault(int, siginfo*, void*)+44)
      #03  pc 0x5a11  /system/bin/app_process32 (???)
      #04  pc 0x18cec  /system/lib/libc.so (???)
      #05  pc 0xe66ee  /system/lib/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned int)+4292395109)
      #06  pc 0x91af1  /system/lib/libart.so (???)
      #07  pc 0x6f5bf  /system/framework/arm/boot-core-oj.oat (oatexec+4293535167)
05-12 00:31:24.304 19968-19968/? E/jni crash monitor: GetCrashThreadJavaStack return null
05-12 00:31:24.995 19968-19968/? A/MicroMsg_Crash: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19973  >>> thread:1 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0x14e0c  [anon:libc_malloc] (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19974  >>> thread:2 <<<
    
      #00  pc 0xbb0  /system/lib/libc.so (__rt_sigtimedwait+4294668300)
      #01  pc 0x41cb  /system/lib/libc.so (sigwait+4294848546)
      #02  pc 0xfd28b  /system/lib/libart.so (???)
      #03  pc 0xfcea9  /system/lib/libart.so (art::SignalCatcher::WaitForSignal(art::Thread*, art::SignalSet&)+4292395192)
      #04  pc 0xfbb09  /system/lib/libart.so (art::SignalCatcher::Run(void*)+4292395192)
      #05  pc 0x2b26b  /system/lib/libc.so (???)
      #06  pc 0x1b573  /system/lib/libc.so (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19975  >>> thread:3 <<<
    
      #00  pc 0x1904c  /system/lib/libc.s
05-12 00:31:24.995 19968-19968/? A/MicroMsg_Crash:  (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19976  >>> thread:4 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19977  >>> thread:5 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19978  >>> thread:6 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)
    108)
      #02  pc 0x67dac  [anon:libc_malloc] (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19979  >>> thread:7 <<<
    
      #00  pc 0x9bc  /system/lib/libc.so (__ioctl+4294668296)
      #01  pc 0x13ff  /system/lib/libc.so (ioctl+4294848550)
      #02  pc 0x3d655  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+204)
      #03  pc 0x3d761  /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+8)
      #04  pc 0x3dcc3  /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+38)
      #05  pc 0x53135  /system/lib/libbinder.so (???)
      #06  pc 0xd22d  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+144)
      #07  pc 0x5da75  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+80)
      #08  pc 0x2b26b  /system/lib/libc.so (???)
      #09  pc 0x1b573  /system/lib/libc.so (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19980  >>> thread:8 <<<
    
      #00  pc 0x9bc  /system/lib
    libc.so (__ioctl+4294668296)
      #01  pc 0x13ff  /system/lib/libc.so (ioctl+4294848550)
      #02  pc 0x3d655  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+204)
      #03  pc 0x3d761  /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+8)
      #04  pc 0x3dcc3  /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+38)
      #05  pc 0x53135  /system/lib/libbinder.so (???)
      #06  pc 0xd22d  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+144)
      #07  pc 0x5da75  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+80)
      #08  pc 0x2b26b  /system/lib/libc.so (???)
      #09  pc 0x1b573  /system/lib/libc.so (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19981  >>> thread:9 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0x167fc  [anon:libc_malloc] (???)
    
    *** *
    * *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19986  >>> thread:10 <<<
    
      #00  pc 0x9bc  /system/lib/libc.so (__ioctl+4294668296)
      #01  pc 0x13ff  /system/lib/libc.so (ioctl+4294848550)
      #02  pc 0x3d655  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+204)
      #03  pc 0x3d761  /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+8)
      #04  pc 0x3dcc3  /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+38)
      #05  pc 0x53135  /system/lib/libbinder.so (???)
      #06  pc 0xd22d  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+144)
      #07  pc 0x5da75  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+80)
      #08  pc 0x2b26b  /system/lib/libc.so (???)
      #09  pc 0x1b573  /system/lib/libc.so (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19988  >>> thread:11 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0xad6e9  /system/lib
    libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19989  >>> thread:12 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19990  >>> thread:13 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19991  >>> thread:14 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *
    * *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19992  >>> thread:15 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19993  >>> thread:16 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19994  >>> thread:17 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19995  >>> thread:18 <<<
    
      #00  pc 0x1904c  /system/lib/libc.s
     (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19996  >>> thread:19 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 19999  >>> thread:20 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20001  >>> thread:21 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *
    * *** *** *** *** *** *** ***
    pid: 19968, tid: 20004  >>> thread:22 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20006  >>> thread:23 <<<
    
      #00  pc 0x199c  /system/lib/libc.so (recvmsg+4294668296)
      #01  pc 0xa6d63  /system/lib/libandroid_runtime.so (???)
      #02  pc 0xa6aff  /system/lib/libandroid_runtime.so (???)
      #03  pc 0x45d9f5  /system/framework/arm/boot-framework.oat (oatexec+4293343733)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20008  >>> thread:24 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 2
    024  >>> thread:25 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20025  >>> thread:26 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20026  >>> thread:27 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20028  >>> thread:28 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0x2ac01  /system/lib/libc.so (???)
      #02  pc 0x7e4dc  [anon:libc_malloc] (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20029  >>> thread:29 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0x2a
    01  /system/lib/libc.so (???)
      #02  pc 0x3dc  /data/data/io.va.exposed/virtual/data/app/com.tencent.mm/lib/libwechatxlog.so (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20030  >>> thread:30 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20032  >>> thread:31 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20033  >>> thread:32 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20034  >>> thread:33 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.
    o (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20035  >>> thread:34 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20036  >>> thread:35 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20037  >>> thread:36 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20038  >>> thread:37 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20039  >>>
05-12 00:31:24.996 19968-19968/? A/MicroMsg_Crash: thread:38 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20041  >>> thread:39 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20042  >>> thread:40 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0x2ac01  /system/lib/libc.so (???)
      #02  pc 0x4dfc  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20044  >>> thread:41 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20048  >>> thread:42 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/li
    art.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20049  >>> thread:43 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20051  >>> thread:44 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0x2ac01  /system/lib/libc.so (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20052  >>> thread:45 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0x2ac01  /system/lib/libc.so (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20053  >>> thread:46 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0x2ac01  /system/lib/libc.so 
    ???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20054  >>> thread:47 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0x2ac01  /system/lib/libc.so (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20055  >>> thread:48 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0x2ac01  /system/lib/libc.so (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20056  >>> thread:49 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0x2ac01  /system/lib/libc.so (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20059  >>> thread:50 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0x2ac01  /system/lib/libc.so (???)
      #02  pc 0x4dfc  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20060  >>> thread:51 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #0
      pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20061  >>> thread:52 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20063  >>> thread:53 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20064  >>> thread:54 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20065  >>> thread:55 <<<
    
      #00 
    pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20070  >>> thread:56 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20071  >>> thread:57 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20072  >>> thread:58 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20073  >>> thread:59 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20074  >>> thread:60 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20075  >>> thread:61 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20076  >>> thread:62 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20077  >>> thread:63 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** 
    ** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20078  >>> thread:64 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20080  >>> thread:65 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20082  >>> thread:66 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20084  >>> thread:67 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20085  >>> thread:68 <<<
    
      #00  pc 0x880  /system/lib/libc
    so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20086  >>> thread:69 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20087  >>> thread:70 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20088  >>> thread:71 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20089  >>> thread:72 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** 
    ** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20091  >>> thread:73 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20092  >>> thread:74 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20093  >>> thread:75 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20094  >>> thread:76 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    *** ***
    pid: 19968, tid: 20095  >>> thread:77 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20096  >>> thread:78 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20098  >>> thread:79 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20101  >>> thread:80 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *
    * *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20106  >>> thread:81 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20111  >>> thread:82 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20112  >>> thread:83 <<<
    
      #00  pc 0x9bc  /system/lib/libc.so (__ioctl+4294668296)
      #01  pc 0x13ff  /system/lib/libc.so (ioctl+4294848550)
      #02  pc 0x10111  /system/lib/libhwbinder.so (android::hardware::IPCThreadState::talkWithDriver(bool)+204)
      #03  pc 0x1021d  /system/lib/libhwbinder.so (android::hardware::IPCThreadState::getAndExecuteCommand()+8)
      #04  pc 0x1083f  /system/lib/libhwbinder.so (android::hardware::IPCThreadState::joinThreadPool(bool)+38)
      #05  pc 0x17629  /system/lib/libhwbinder.so (?
    ?)
      #06  pc 0xd22d  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+144)
      #07  pc 0x5da75  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+80)
      #08  pc 0x2b26b  /system/lib/libc.so (???)
      #09  pc 0x1b573  /system/lib/libc.so (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20122  >>> thread:84 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20123  >>> thread:85 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20124  >>> thread:86 <<<
    
      #00  pc 0x88
      /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20125  >>> thread:87 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20127  >>> thread:88 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20129  >>> thread:89 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19
    68, tid: 20134  >>> thread:90 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20141  >>> thread:91 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20142  >>> thread:92 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20143  >>> thread:93 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0xad6e9  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20146  >>> thread:94 <<<
    
      #00
     pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20147  >>> thread:95 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20154  >>> thread:96 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20155  >>> thread:97 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** **
    pid: 19968, tid: 20156  >>> thread:98 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20157  >>> thread:99 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20158  >>> thread:100 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20159  >>> thread:101 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art
    :Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20160  >>> thread:102 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0x2ac01  /system/lib/libc.so (???)
      #02  pc 0x124bc  [anon:libc_malloc] (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20161  >>> thread:103 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0x2ac01  /system/lib/libc.so (???)
      #02  pc 0xfa8fc  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20162  >>> thread:104 <<<
    
      #00  pc 0x1904c  /system/lib/libc.so (syscall+28)
      #01  pc 0x2ac01  /system/lib/libc.so (???)
      #02  pc 0xfa8fc  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20163  >>> thread:105 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwa
    t+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20175  >>> thread:106 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668308)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20180  >>> thread:107 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20181  >>> thread:108 <<<
    
      #00  pc 0x19050  /system/lib/libc.so (syscall+32)
      #01  pc 0xada11  /system/lib/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long long, int)+108)
      #02  pc 0xffffffff  <unknown> (???)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20183  >>> thread:109 <<<
    
      #00  pc 0x880  /system/lib/libc.so (__epoll_pwait+4294668
    08)
      #01  pc 0x1b981  /system/lib/libc.so (epoll_pwait+60)
    
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 19968, tid: 20184  >>> thread:110 <<<
    
    get the stack fail

两个函数签名完全一样(参数、返回值),怎么办?

微信 6.6.6 版本,com.tencent.mm.ui.w$a 类中

public final void af(int i) {
        w.d("MicroMsg.LauncherUI.MainTabUI", "on page selected changed to %d", new Object[]{Integer.valueOf(i)});
        w.v("MicroMsg.LauncherUI.MainTabUI", "reportSwitch clickCount:%d, pos:%d", new Object[]{Integer.valueOf(this.rLM), Integer.valueOf(i)});
//.......   
}

public final void ag(int i) {
//.....
 }

public final void pq(int i) {
//......    
}

这3个方法签名完全一样,我想找出其中一个方法,该怎么做?有什么思路呢?
谢谢

自动分析微信不同版本Api的是怎么实现,大致逻辑能在文档中介绍下吗?谢谢

作者在便利特色里面写到巫师使用一套API 自动分析 微信内部结构特征,避免手工适配 每个微信版本不同的类名、方法名。我就去看了下作者的源码,看了下这部分逻辑好像是根据不同版本参数类似规则进行过滤来找到方法,从而匹配不同版本的。但是具体实现我表示看不懂,作者能大致说下吗,这样我们了解了之后就可以在巫师的基础上加一下功能,同时也做下版本适配。

使用WeChatSpellBook框架会出现空指针问题

10-08 14:15:12.378 11021-11060/? E/Xposed: kotlin.KotlinNullPointerException
at com.gh0u1l5.wechatmagician.spellbook.mirror.com.tencent.mm.storage.Classes$MsgInfoStorage$2.invoke(Classes.kt:22)
at com.gh0u1l5.wechatmagician.spellbook.mirror.com.tencent.mm.storage.Classes$MsgInfoStorage$2.invoke(Classes.kt:12)
at com.gh0u1l5.wechatmagician.spellbook.WechatGlobal$wxLazy$2.invoke(WechatGlobal.kt:72)
at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:131)
at com.gh0u1l5.wechatmagician.spellbook.mirror.com.tencent.mm.storage.Classes.getMsgInfoStorage(Classes.kt)
at com.gh0u1l5.wechatmagician.spellbook.mirror.com.tencent.mm.storage.Methods$MsgInfoStorage_insert$2.invoke(Methods.kt:16)
at com.gh0u1l5.wechatmagician.spellbook.mirror.com.tencent.mm.storage.Methods$MsgInfoStorage_insert$2.invoke(Methods.kt:12)
at com.gh0u1l5.wechatmagician.spellbook.WechatGlobal$wxLazy$2.invoke(WechatGlobal.kt:72)
at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:131)
at com.gh0u1l5.wechatmagician.spellbook.mirror.com.tencent.mm.storage.Methods.getMsgInfoStorage_insert(Methods.kt)
at com.gh0u1l5.wechatmagician.spellbook.hookers.Storage$onMessageStorageInsertHooker$1.invoke(Storage.kt:42)
at com.gh0u1l5.wechatmagician.spellbook.hookers.Storage$onMessageStorageInsertHooker$1.invoke(Storage.kt:16)
at com.gh0u1l5.wechatmagician.spellbook.util.XposedUtil$postHooker$1$1.invoke(XposedUtil.kt:50)
at com.gh0u1l5.wechatmagician.spellbook.util.XposedUtil$postHooker$1$1.invoke(XposedUtil.kt:14)
at com.gh0u1l5.wechatmagician.spellbook.util.XposedUtil$tryHook$2.invoke(XposedUtil.kt:35)
at com.gh0u1l5.wechatmagician.spellbook.util.XposedUtil$tryHook$2.invoke(XposedUtil.kt:14)
at com.gh0u1l5.wechatmagician.spellbook.util.BasicUtil$tryAsynchronously$1.invoke(BasicUtil.kt:33)
at com.gh0u1l5.wechatmagician.spellbook.util.BasicUtil$tryAsynchronously$1.invoke(BasicUtil.kt:9)
at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:18)

GPL license problem

当然,对于诸位想要基于我的项目做商业项目的开发者,也请尽管拿去。我不喜欢道德绑架别人,也不认为这有什么绑架的必要。但是如果你在闲暇时间能够贡献十几行代码、修复些你发现的Bug,那就已经十分感激。

我对这句话的理解可能有误,如果按照商业项目的话,可能有copyleft的问题吧。
不知道未来是继续GPL还是会换到其他的协议?

使用快速上手教程,无法启动微信

我的微信版本是6.7.3,实际那个Alert的Toast是可以弹出来的,但是马上微信就会crash,应该是被微信检测出来了吧,请问我有办法绕过检测么

菜鸟求助:hook http请求

感谢开源!

我想请问
不知道能否hook微信的http请求的函数呢?

比如图片之类或者文字之类的post等等http的请求
我想应该是透过某一个微信写了一个类(比如dataService)来做这一件事吧?(基于我浅薄开发angularjs的经验...)

不知道可否找到这个类并且hook之?
这样就能看到https以前的请求长啥样子了...

hook数据库mm无响应

机型:Nexus 6
MM版本:6.6.3
Android版本:8.1

不管是IMessageStorageHook还是IDatabaseHook都会直接造成微信ANR。
调用方式使用的Java方式,只是简单的实现了一下 XposedBridge.log

Wiki: 快速上手 存在的一点 typos

  1. if (isImportantWechatProcess(lpparam)) -> if (isImportantWechatProcess(lpparam)),最后一个括号为全角

  2. Operation<Long?> -> Operation<Long>

  3. if (Spellbook.isImportantWechatProcess(lpparam)) { -> if (SpellBook.isImportantWechatProcess(lpparam)) {book 应改为 Book

闪退

WechatBotXposed 用 最新版的 spellbook 自动回复消息, 微信直接闪退

Java某些使用场景的兼容问题

我的使用场景是这样的
//---------------LaunchUIHook---------------
public class LaunchUIHook implements IActivityHook {
@OverRide
public void onMMActivityOptionsMenuCreated(@NotNull Activity activity, @NotNull Menu menu) {
XposedBridge.log("LaunchUIHook: onMMActivityOptionsMenuCreated");
}

@Override
public void onActivityCreating(@NotNull Activity activity, @Nullable Bundle savedInstanceState) {
    XposedBridge.log("LaunchUIHook: onActivityCreating");
}

@Override
public void onActivityStarting(@NotNull Activity activity) {
    XposedBridge.log("LaunchUIHook: onActivityStarting");
}

@Override
public void onActivityResuming(@NotNull Activity activity) {
    XposedBridge.log("LaunchUIHook: onActivityResuming");
}

}

//---------------LaunchUI---------------
public class LaunchUI extends LaunchUIHook {

@Override
public void onMMActivityOptionsMenuCreated(@NotNull Activity activity, @NotNull Menu menu) {
    XposedBridge.log("LaunchUI: onMMActivityOptionsMenuCreated");
}

@Override
public void onActivityStarting(@NotNull Activity activity) {
    XposedBridge.log("LaunchUI: onActivityStarting");
}

}

如上面两个类,我想在父类LaunchUIHook实现一些默认方法,然后再子类LaunchUI上在重写部分方法实现某些具体业务,注册插件子类LaunchUI对象。然而发现父类的onActivityCreating、onActivityResuming方法都没有触发到,在spellbook源码打log发现EventCenter里
private fun Any.hasEvent(event: String) =
this::class.java.declaredMethods.any { it.name == event }
推测在这里导致连钩子都没有挂上,从而父类LaunchUIHook的方法都没法触发。
我把declaredMethods改成methods确保连父类方法都读取,试验成功,log都能按照预想的方式打印出来了。

刚看此框架第二天,不知道这样魔改会不会引起问题,不知道是否出于某些考虑而采用declaredMethods?

这个开源项目有多大?

这个开源项目代码有多少M啊,我下一百多M都没下好,按理说都是代码应该很快下完啊。。

获取全部聊天记录?

IDatabaseHookonDatabaseInserted 可以获取新添加的消息,但是 onDatabaseQueried 无法获取查询的,现在想要拿到所有的聊天记录。
还有,同样遇到使用 IMessageStorageHook 无法收到消息。

您好,有个疑问,只要实现了IDatabaseHook,“executeSql”一定会被绕过

Database中onExecuteHooker的"beforeHookedMethod"“notifyForBypassFlags”
只要实现了IDatabaseHook,其中的“onDatabaseExecuting”的默认值是false,
"notifyForBypassFlags"方法中“notifyForResults”得到的就是一个{false,……}的list,
any方法执行得到的值就会是true,
那么微信数据库的“executeSql”方法就一定会被绕过,无法执行原生方法

我的测试是微信【设置-聊天-清空聊天记录】的操作,一定会被拦截无法成功执行

7.0.0 init问题

WechatSpellbook在7.0.0以上的微信版本中parse apk会失败,原因是因为7.0.0的apk大小有90+MB,2s的初始化时间不足以把整个类树给parse出来。如果有需求7.0.0以上版本的同学可以自行把源码里的初始化限制放宽。

IMessageStorageHook接口拦截消息导致微信界面中没有消息显示

作者你好,我是刚刚接触WechatSpellbook框架的新人。在使用中遇到了这样一个问题:在0.0.3版本中的框架中,使用IMessageStorageHook该接口的 onMessageStorageInserted方法拦截下来的消息是会在微信的聊天界面中正常显示的。可是现在最新的0.0.6版本中,虽然可以拦截到别人发的消息,但是微信界面并没有任何消息提醒,似乎连插入数据库的操作都没有了。而且自己发送消息给别人的话还会导致微信闪退,我使用的微信版本是6.6.7,但我尝试过就版本的6.13.7也存在这样的问题,应该是作者您对框架进行了一些修改吧。如果我想使用新版本的框架去实现拦截消息,并且让微信能正常使用,需要做些什么改变呢?麻烦您了!

Bug

在beforeHookedMethod 中使用 EventCenter.notifyForBypassFlags()这个方法可能存在问题, action 参数默认返回false, 可能会导致 afterHookedMethod 中返回值为null

登录微信闪退应该就是这个原因导致

原始代码
inline fun notifyForBypassFlags() {
val shouldBypass = notifyForResults(event, action).any()
}

修改点
inline fun notifyForBypassFlags() {
val shouldBypass = notifyForResults(event, action).any {
it
}
}

[Feature]后续能否支持Magisk框架呢

本人手机为一加5,之前一直想折腾Xposed框架,但由于要解锁BL一直未尝试。
在接触到VirtualXposed之后开始尝试,不巧那时候微信巫师在上面运行不是很完善。
索性解BL刷上了Magisk,后续又安装了Systemless版的Xposed,开始了愉快地搞机。
Magisk安上之后手机一切正常,但由于模块太少。又安装上Xposed,但安装之后工商银行及静读天下无法正常运行,偶尔卡卡的,不知是何原因,大神若是知道有劳解释一下。

本人对搞机很有兴趣,后续准备写些模块解决日常需求。个人感觉Magisk在7.1上表现相对较好,我想请教开发过Xposed模块的大神们,将Xposed模块移植至Magisk工程量如何呢?
在这里希望此框架后续可以支持Magisk框架,十分感谢。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.