开发工具

工具名称 工具类型 说明
AndroidStuduo 编辑工具 开发工具
jadx java工具 将apk解成java项目
xposed 插件工具 插件
qq 版本8.8.80

开始

先通过jadx把apk反编译出来源码,通过build出来,在android studio打开,方便分析。

  • 要撤回自己的消息,肯定需要监听消息发送。

消息操作的函数基本都在这里ChatActivityFacade,可以通过 hook 此类的全部的函数,再通过手机发送一条消息,看会调用哪些函数。

最后确定,自己的发送消息都会调用到这个函数:

那我们只要hook住这里,拿到撤回消息需要的数据就行 message消息体。

//监听消息 = 自己
public void messageMonitoring() throws Exception {Class<?> ChatActivityFacade = mHookClassLoader.loadClass("com.tencent.mobileqq.activity.ChatActivityFacade");Class<?> QQAppInterface = mHookClassLoader.loadClass("com.tencent.mobileqq.app.QQAppInterface");Class<?> MessageRecord = mHookClassLoader.loadClass("com.tencent.mobileqq.data.MessageRecord");Class<?> ChatActivityFacade$SendMsgParams = mHookClassLoader.loadClass("com.tencent.mobileqq.activity.ChatActivityFacade$SendMsgParams");XposedHelpers.findAndHookMethod(ChatActivityFacade, "a",QQAppInterface, boolean.class, MessageRecord, ChatActivityFacade$SendMsgParams,new XC_MethodHook() {@Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);XLog.d("监听消息 = 自己");//延迟4秒撤回new Handler().postDelayed(()-> messageRetraction(param.args[2]), 4_000);}});
}
  • 撤回消息

在QQMessageFacade这个类里面

我们只要伪造这个 f 方法即可

当然不可能事事如意,刚开始试的时候不行,再往后面跟踪

发现需要把dialog设置为true才能成功。

需要添加这个:ReflectionUtil.invokeMethod(MessageCache, “b”, boolean.class, true);

//消息撤回 = 事件
public void messageRetraction(Object ChatMessage) {XLog.d("消息撤回 执行");try {Class<?> MessageRecordClazz = mHookClassLoader.loadClass("com.tencent.mobileqq.data.MessageRecord");String selfuin = ReflectionUtil.getFieldValue(ChatMessage, "selfuin");Object sApplication = ReflectionUtil.invokeStaticMethod(mHookClassLoader.loadClass("com.tencent.common.app.BaseApplicationImpl"),"getApplication");Object qqAppInterface = ReflectionUtil.invokeMethod(sApplication, "getAppRuntime", String.class, selfuin);Object MessageCache = ReflectionUtil.invokeMethod(qqAppInterface, "getMsgCache");ReflectionUtil.invokeMethod(MessageCache, "b", boolean.class, true);Object QQMessageFacade = ReflectionUtil.invokeMethod(qqAppInterface, "getMessageFacade");ReflectionUtil.invokeMethod(QQMessageFacade, "f", MessageRecordClazz, ChatMessage);XLog.d("消息撤回 执行 完毕");} catch (Exception e) {XLog.d(e);}
}

逆向 qq 消息撤回相关推荐

  1. php消息撤回,QQ怎么在撤回消息后面加字?QQ消息撤回修改内容

    最近很火的QQ消息撤回后面还可以加字.比如在XX撤回了一条消息并XXX这种格式了.就是在撤回了一条消息后面加字.下面来教大家怎么操作. 第一种方法 第一种方法就是下载这个消息撤回修改装X.EXE程序. ...

  2. 微信和QQ消息撤回可见app(仅限安卓手机系统的童鞋哟,本人亲测有效)

    这款软件仅1.6MB,并不会占用太多的空间,给予所需的权限,并开启监听撤回之后,不管你锁没锁屏,都可以记录被撤回的消息,不过经测试成功率不是百分百,多次测试排除后得知,被屏蔽的群消息,不会有屏幕提示的 ...

  3. 第25天:PC QQ防撤回

    看过不少防撤回的帖子,今天也记录一下这个过程吧. 对于QQ消息撤回机制这里推荐夜影师傅的博客, https://blog.csdn.net/whklhhhh/article/details/78620 ...

  4. 从qq服务器删除误收邮件,QQ邮箱撤回时显示撤回失败,对方已读 收件箱里的消息却是对方已阅读或已删除 这种情况下邮件有没有被删除...

    QQ邮箱撤回时显示撤回失败,对方已读 收件箱里的消息却是对方已阅读或已删除 这种情况下邮件有没有被删除以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容 ...

  5. QQ消息防撤回(基于go-cqhttp)

    很多时候别人消息撤回了,我们就看不到别人有意思的消息了所以,我们来写一个防撤回接口,让群里的消息无处遁寻 1 首先我们看到api接口,这个重要!!!! 2 我们在去查看消息体 *私人聊天撤回 {&qu ...

  6. 中怎么撤回消息_微信消息撤回也能看到,这个开源神器牛x!语音、图片、文字都支持!...

    1.前言 微信在2014年的时候,发布的v5.3.1 版本中推出了消息撤回功能,用户可以选择撤回 2 分钟内发送的最后一条信息. 现在很多即时通讯的软件都有撤回这个功能. 腾讯为了照顾手残党,在微信和 ...

  7. 用Python 80行代码实现一个微信消息撤回捕捉功能

    自从微信出了这个消息撤回功能小编我都已经快被折磨死了,小编本来就是个好奇心比较重的人,微信出了这个功能之后小编感觉身体一天不如一天了,每次看着女神发来的信息又撤回,可谓是心里痒痒啊.所以小编就写了一个 ...

  8. python使用worldcloud模块、jieba模块做QQ消息记录词云

    一.导出QQ消息记录 然后选择[导出全部消息记录] 这里注意要将保存类型改为txt文件 二.函数处理 import re import wordcloud from PIL import Image ...

  9. python学习 -女神或者男神把微信消息撤回后好慌,有了这个妈妈再也不担心你看不到女神或者男神撤回的消息了(超详解)...

    简介 有时候在忙工作,女朋友发了一个消息,就撤回了,但是人天生的都有一颗好奇心,而且在当今这个时代找个女朋友不容易,一个程序猿找一个女朋友更是不容易的.人家好不容易跟你,你还不得把人家当老佛爷侍候着, ...

最新文章

  1. POJ1680 Currency Exchange SPFA判正环
  2. Linux软件安装管理 - CentOS (二) ---- yum在线安装
  3. 请设计各种管理系统、业务系统的大哥大姐们,设计新系统时,拜托您,请允许我修改用户名、密码...
  4. 小规模流处理kata。 第1部分:线程池
  5. MYSQL 定时任务
  6. 【2021-01-14】navicat使用ssh tunnel、密钥方式连接数据库的问题。错误:Unable to load key - unrecognised cipher name
  7. 安卓学习笔记12:安卓按键事件
  8. 华为留了一手!将继续发布P50、Mate50:搭载麒麟9000...
  9. 明显调用的表达式前的括号必须具有(指针)函数类型
  10. 【车间调度】基于matlab遗传算法求解车间调度问题【含Matlab源码 070期】
  11. java代码自动生成,在线生成非常好用收藏
  12. 教你炒股票28:回复(一)
  13. 简单测试ROS里面C++ 和 python 文件获取参数格式
  14. 百度扩容软件V.2.3版,第四代扩容带自助修复功能
  15. 日本经济泡沫与房价泡沫
  16. Android 关闭屏幕方法
  17. APP实现图片放大预览效果
  18. 【C语言编程练习】5.7填数字游戏求解
  19. python米和厘米转换代码_用Python写一个朴素的长度单位转换器
  20. python放大代码放大_Python中的放大缩小功能

热门文章

  1. 苹果手机怎么关掉自动续费_教你关掉iPhone自动续费,不然每个月偷偷扣你的钱!...
  2. CB一体机添加客户机租户
  3. 计算机专业买哪一款华硕电脑好,华硕笔记本哪款好 2018华硕笔记本销量排行
  4. 【Linux kernel/cpufreq】framework ----初识
  5. vue项目debugger调试看不到源码
  6. typora图片无法加载
  7. IPXE+WinPE+Ghost+VHD+极域在机房维护中的应用
  8. 如何用 CSS 和 D3 创作火焰动画 1
  9. [JAVA毕业设计]vue健康餐饮管理系统设计与实现源码获取和系统演示
  10. python绘制对数坐标图描点,python坐标轴对数显示