Gh0u1L5 / WechatSpellbook

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

CuteRem opened this issue · comments

commented

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

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

commented

我觉得如果要根据返回值来判断的话,“notifyForBypassFlags”的第一行是不是应该改为
val shouldBypass = notifyForResults(event, action).any{it}