fuqiuluo’s blog

记录美好生活

技术分享

LSPosed - 使用协议层禁止QQ撤回事件

#LSPosed#安全#安卓#反射
type
Post
status
Published
date
Jul 19, 2024
slug
lsposed---shi-yong-xie-yi-ceng-jin-zhi-qqche-hui-shi-jian
summary
使用纯协议层的Hook拦截QQ的撤回事件!
tags
LSPosed
安全
安卓
反射
category
技术分享
icon
password
看了一下QA源代码,用的是native hook去实现的反撤回,我觉得呢,太麻烦!
在协议层把撤回包拦截就好了!
根据我多年分析协议的经验,QQ的撤回主要来源于两个包:
  • trpc.msg.register_proxy.RegisterProxy.InfoSyncPush
  • trpc.msg.olpush.OlPushService.MsgPush
第一个管的是消息的同步,也就是历史撤回事件的同步(还有的别的消息事件戳一戳什么的),而第二个比较单一,一般只携带有一个事件,例如戳一戳或者撤回事件。

Hook NTNative收包

其中kernelServicecom.tencent.qqnt.kernel.api.IKernelService ,那么问题来了,解析全在native,我们不知道protobuf的结构呀!别急,谷歌的protobuf组件库贴心的为我们实现了一个叫UnknownFieldSet的东西,使用这个东西,我们可以轻松解析不认识的网络包。
我们可以参考:https://github.com/fuqiuluo/fastprotobuf,草gitcode偷偷克隆我的垃圾项目,https://gitcode.com/fuqiuluo/fastprotobuf
那我们先将代码改成这样:

除了同步消息包

基础事件推送

详细代码在QwQ项目:https://github.com/fuqiuluo/QwQ
Loading...