qq消息撤回

news2024/10/7 20:25:19

开发工具

工具名称工具类型说明
AndroidStuduo编辑工具开发工具
jadxjava工具将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() {
                @Override
                protected 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);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/169278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TMC步进电机驱动stealthChop

一直觉得tmc系列的芯片功能很强大&#xff0c;但是我自己读寄存器手册的感觉就是每个字我都认识&#xff0c;怎么就这么难懂。。。。 stealthChop 是一种电压控制技术&#xff0c;基于电压斩波器的工作远离&#xff0c;可在低速中速范围内以最大扭矩实现绝对静音的步进电机控制…

【推荐】自用软件工具推荐 WIN

一、图片查看器 Honeyview 蜂蜜浏览器 免费的图像查看器 下载和功能说明 (bandisoft.com) 轻量而快速可以显示包括 GPS 信息在内的 JPEG 格式的 EXIF 信息对图像格式进行批量转换和调整大小支持显示 GIF 和 WebP 动图无需解压即可直接查看压缩包中的图像支持的格式 图像格式…

大厂整个项目的开发规范流程

第1节、大厂码农开发基础 内容 本章节给大家介绍在互联网做开发&#xff0c;基础环境、开发技术以及上线和监控都会用到哪些东西。一般互联网大厂像阿里、京东、腾讯等都会有公司自研的一些技术组件&#xff0c;比如&#xff1a;RPC、MQ、数据库路由等&#xff0c;但所有的这些…

API 网关的功能用途及实现方式

1. API 网关诞生背景 前言 API 经济生态链已经在全球范围覆盖&#xff0c; 绝大多数企业都已经走在数字化转型的道路上&#xff0c;API 成为企业连接业务的核心载体&#xff0c; 并产生巨大的盈利空间。快速增长的 API 规模以及调用量&#xff0c;使得企业 IT 在架构上、模式…

flume整合数据到kafka,sparkStreaming消费数据,并存储到hbase和redis中

目录 1、模拟数据生成 2、flume采集数据 1、node01配置flume的conf文件 2、node02开发flume的配置文件 3、node03开发flume的配置文件 4、开发flume启动停止脚本 5、node01执行以下命令创建kafka的topic 6、启动并查看kafka的数据 3、SparkStreaming消费kafka中的数…

第二章.线性回归以及非线性回归—LASSO算法

第二章.线性回归以及非线性回归 2.13 LASSO算法 1.前期导入&#xff1a; 通过构造一个一阶惩罚函数获得一个精炼的模型&#xff1b;通过最终确定一些指标(变量)的系数为零&#xff0c;解释力很强 岭回归估计系数等于0的机会微乎其微&#xff0c;造成筛选变量困难 擅长处理具有…

如何实现根据环境切换不同配置?

在企业开发中&#xff0c;系统的配置信息往往会分不同的环境&#xff0c;如开发环境、测试环境、生产环境。当我们使用nacos做为配置中心时&#xff0c;一定会遇到的问题就是在应用中配置nacos的server-addr时测试环境的nacos地址和线上nacos地址如何区分的问题 拿开发环境和正…

4.4 可迭代对象(Iterable)与迭代器(Iterator)

4.4 可迭代对象(Iterable)与迭代器&#xff08;Iterator&#xff09; 4.4.1 可迭代&#xff08;Iterable&#xff09;对象 如果一个对象实现了__iter__方法&#xff0c;那么这个对象就是可迭代&#xff08;Iterable&#xff09;对象>>> #如何知道一个对象实现了那些…

STM32MP157内核移植相关bug

STM32MP157 官方Linux5.15内核移植相关bug一、主频问题二、驱动开发时的头文件缺失问题三、结语一、主频问题 在初学STM32MP157驱动开发时&#xff0c;笔者曾对官方最新版的Linux内核进行了移植&#xff0c;但是因为一些问题&#xff0c;导致移植后的系统存在一些bug。最近笔者…

Java学习之抽象类

目录 一、抽象类引出 二、抽象类的介绍 三、抽象类的细节 第一条 第二点 第三点 第四点 第五点 第六点 第七点 第八点 四、练习 第一题 第二题 一、抽象类引出 当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法&#xff0c;这个方法就是抽象方法,用…

【设计模式】创建者模式·建造者模式

学习汇总入口【23种设计模式】学习汇总(数万字讲解体系思维导图) 写作不易&#xff0c;如果您觉得写的不错&#xff0c;欢迎给博主来一波点赞、收藏~让博主更有动力吧&#xff01; 一.概述 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 …

Python实现哈里斯鹰优化算法(HHO)优化支持向量机回归模型(SVR算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 2019年Heidari等人提出哈里斯鹰优化算法(Harris Hawk Optimization, HHO)&#xff0c;该算法有较强的全…

目标检测——day66 Scaled-YOLOv4: Scaling Cross Stage Partial Network

Scaled-Yolov4:可伸缩跨级部分网络 Scaled-YOLOv41. Introduction2. Related work2.1. Real-time object detection2.2. Model scaling&#xff08;模型缩放&#xff09;3. Principles of model scaling4. Scaled-YOLOv44.1. CSP-ized YOLOv44.2. YOLOv4-tiny4.3. YOLOv4-large…

上海亚商投顾:沪指缩量小幅调整 半导体与旅游股领涨

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。市场情绪沪指今日缩量小幅调整&#xff0c;创业板指稍显强势&#xff0c;多数时间红盘运行&#xff0c;科创50指数涨超1%。半…

springMVC讲解(上)

SpringMvc 1&#xff0c;简介 springmvc是spring的一个后续产品&#xff0c;是spring的一个子项目&#xff0c;是spring为表示层所开发的一整套完备的解决方案&#xff0c;在表示层框架经历了struct、webWork、struct2等诸多产品的历代更迭之后&#xff0c;目前业界普遍选择了…

JAVA就业课程,面试题大全

面试整体流程1.1 简单的自我介绍我是xxxx,工作xxx年.我先后在xxxx公司、yyyy公司工作。先后做个xxxx项目、yyyy项目。1.2 你简单介绍一下xxxx项目为了解决xxxx问题&#xff0c;开发了一套xxxx系统&#xff0c;该系统主要有那些部分组成。简单介绍项目的整体架构。参与某个模块的…

【Python学习】输入和输出

前言 往期文章 【Python学习】列表和元组 【Python学习】字典和集合 【Python学习】条件和循环 在很多时候&#xff0c;你会想要让你的程序与用户&#xff08;可能是你自己&#xff09;交互。你会从用户那里得到输入&#xff0c;然后打印一些结果。我们可以使用iinput和pr…

MATLAB趣味绘图-内接正六边形旋转

MATLAB趣味绘图-内接正六边形旋转 观察一下内部的正六边形大概在外部的正六边形边的四等分点的位置&#xff0c;通过数学平面几何知识可得边和角度的迭代关系式为&#xff1a; an134an−1θnθn−1arctan⁡36a_n \frac{\sqrt{13}}{4} a_{n-1} \\ \theta_n \theta_{n-1}\arcta…

金融行业数据库场景下,SmartX 超融合表现如何|性能验证与落地实践

在金融行业&#xff0c;数据库是一项至关重要的 IT 基础设施。作为交易和数据的主要载体&#xff0c;数据库往往需要在短时间内处理大量的业务数据&#xff0c;其可靠性、稳定性和性能将直接影响业务系统的运行状态。而在进行数据库基础架构选型时&#xff0c;一些客户对于超融…

C++学习笔记——类和对象

1.面向对象的三大特性&#xff1a;封装、继承、多态 2.对象有其属性和行为 3.具有相同性质的对象&#xff0c;可被抽象为类 1.封装 1.封装是C面向对象三大特性之一 2.封装的意义&#xff1a; &#xff08;1&#xff09;将属性&#xff08;变量&#xff09;和行为&#xff…