Android中Xposed框架篇-微信实现本地视频发布到朋友圈功能

逆向android-让你也能开发微信的xposed插件-手机root(一) 一个root过的手机可以让你随心所欲的控制手机上的所有功能,配合xposed框架,可以让你拦截所有应用的执行。Xposed 框架是一款可以在不修改 APK 的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作(目前支持10.0以下的android系统)。但是该框架在2017年已经停止维护,但是后续又出现了不少优秀的类Xposed框架, 阅读详情
本文转载自 微信实现本地视频发布到朋友圈功能  
前一篇文章 已经详细介绍了如何使用Xposed框架编写摇色子和剪刀石头布作弊器,本文继续介绍如何使用Xposed框架编写 微信 插件将本地小视频发布到朋友圈,这里还是使用微信6.3.9版本进行操作。 
微信6.3.9.apk  
在之前的基础之上,本次操作就应该非常简单了,还记得之前的突破口是啥吗?看过文章的同学应该知道是通过分析界面的控件来获取id值,然后全局搜索。本文采用另外一种方式,下面来详细介绍一下。微信正常情况下发布小视频到朋友圈,会跳转到这个发布页面。 
这里写图片描述  
这个页面有标题,小视频,地理位置等信息,而这些信息应该会在请求发布的时候携带到服务器上,有点类似于文件上传功能。这个页面是一个activity页面,可能是从其他页面跳转过来的,同时会把这些元素信息通过intent携带过来,而小视频是个文件,所以应该会携带文件的名称。有了这些猜想之后就可以开始操作了,首先得到这个页面的activity名称。 
这里写图片描述  
看到这个页面的名称是SightUploadUI,借助Jadx反编译微信之后,找到这个类。 
这里写图片描述  
直接看onCreate方法中有没有对intent参数解析操作,或者可以在这个类中全局搜一下getIntent字段,也可以快速得到解析的地方。 
这里写图片描述  
看到第一个字段Kdescription,从字段的名称来看应该是描述信息,而从下面的代码setText调用更可以确认了这个就是标题信息。我们继续查找。 
这里写图片描述  
又发现了一个字段KSightDraftEntrance,这块代码就有点多了,这是一个boolean类型,所以先不管了,因为后面即使是尝试的话也就两次操作,一次false一次true。可是到这里再也搜不到其它字段了,没有找到最重要的视频文件路径。这时就要想起在onCreate方法中有一个ae类初始化的时候把当前activity传递进去了,那么可能它内部继续进行了参数解析,进去查看一下。 
这里写图片描述  
果然在它内部还有三个字段解析,分别是KSightThumbPath,KSightPath,sight_md5,从命名上猜想这些应该就是和视频信息相关的字段了:KSightPath字段是短视频路径,KSightThumbPath是短视频的默认封面图,sight_md5是短视频的校验值。得到了这五个参数,可以直接尝试操作。在本地存放一个短视频和封面图片,然后计算短视频的MD5,最后通过intent来启动这个页面即可。不管后面的上传过程,先试验能不能成功跳转到这个页面展示本地小视频。这里有一个问题,怎么获取这个启动页面的activity呢?有的同学可能这么干,直接编写一个程序然后用它的activity启动这个页面。这个猜想理论上是可行的,不过我没尝试,因为我想微信肯定做了activity启动安全防护,不可能在其它应用中启动微信中的任意一个页面。可以打开一个聊天页面,继续使用adb shell dumpsys activity top命令查看。 
这里写图片描述  
知道了LauncherUI页面下面怎么获取这个对象呢?这就需要借助Xposed框架进行Hook了。 
这里写图片描述  
我们Hook页面的onResume方法,这是Activity生命周期中的比较晚的一个方法,所以拦截它就可以了。再拦截MethodHookParam的thisObject属性就可以得到这个方法所属的对象了,也就是LauncherUI类型。下面就简单了,构造上面的五个参数得到intent直接启动。 
这里写图片描述  
这里我们没有做MD5操作,先看看不做会不会有问题。直接运行模块,然后重启设备生效,打开微信界面瞬间看到效果了。 
这里写图片描述  
果然跳转到这个页面了,下面点击发送,会发现发送失败。 
这里写图片描述  
微信小视频长度不能超过15s,大小不能超过1M。这里本地视频是符合这两个标准的,那么就有应该是MD5校验出问题了。获取文件的MD5码这里就不多解释了,不过MD5弄成文件的还是失败。估计这里不是真正意义上的MD5,可能加上了自己的 算法 。全局搜索sight_md5。 
这里写图片描述  
进入查看方法。 
这里写图片描述  
查找这个方法在哪被调用。 
这里写图片描述  
点击进入查看。 
这里写图片描述  
倒数第二个参数就是那个MD5码值,全局搜一下这个变量是在哪里被使用的。 
这里写图片描述  
看到这里有赋值的地方,点击进入查看。 
这里写图片描述  
然后查看这个kbVar变量,在上面的代码中。 
这里写图片描述  
这里可以先看看这个kb类的定义。 
这里写图片描述  
aFL就是MD5码值了,因为a这个方法可能是抽象的,所以得找到抽象定义的地方,在上面就是一个抽象类c。 
这里写图片描述  
然后进入c类查看抽象方法a。 
这里写图片描述  
然后查找a方法调用的地方。 
这里写图片描述  
继续查看这个方法调用的地方。 
这里写图片描述  
这时候我们多看一下,这个方法所属的类是个单例。 
这里写图片描述  
继续查看这个g方法被调用的地方,或者全局搜一下jJA这个变量的使用。 
这里写图片描述  
又回到MainSightContainerView类,这里看到赋值的地方了,而且是给aFL字段赋值的,这个就是上面看到kb类中的字段值,这里依然调用了一个方法计算MD5码值,而且传入的参数是视频路径。 
这里写图片描述  
这里首先判断当前视频文件是否存在,然后再进行文件操作。 
这里写图片描述  
真正加密算法是在a方法中,因为计算文件的MD5码比较耗时,所以这里做了一个优化,只会计算文件的前100KB数据。 
这里写图片描述  
到这里终于真相大白了,看到的确是用了MD5算法,只是在后面又加了一个简单的算法。这里为了简单,可以直接把这几个方法拷贝到Xposed模块代码中,然后把之前的intent中的sight_md5字段值替换一下。 
这里写图片描述  
到这里可以看到,发送成功了,终于实现了这个功能。 
微信非常庞大,还好有一些强大的工具,下面就来总结收获的知识。 
一、使用adb shell dumpsys activity top命令快速定位页面 
二、使用Jadx进行方法跟踪时候如果发现没有结果,可能这个方法是抽象的,需要找到这个抽象方法最原始的定义的地方继续跟踪 
项目在github: https://github.com/houjingyi233/WechatUploadVideo  
声明:本文介绍的知识点完全是从一个技术分享角度出发,绝非用于任何商业活动和用途,如果涉及到任何法律问题将由操作者本人负责。本文作者将不负任何法律责任!也请各位同学秉着技术角度出发的原则,切勿用于商业中!
利用 Xposed 快速实现一个简易微信机器人 msgObject// 这些都是消息的属性,内容,发送人,类型等valasString?valasInt。 阅读详情

相关推荐

Android 挂逼 修炼之行---微信实现本地视频发布到朋友圈功能

Android 挂逼 修炼之行---微信实现本地视频发布到朋友圈功能

qq_44906504的博客 474

利用xposed,实现微信自动发送文本消息

利用xposed实现微信自动发送文本消息

u013556729的博客 1429

Ubuntu20.04下Docker无缝升级实战指南

本文提供了一份在Ubuntu20.04系统上安全、无缝升级Docker的实战指南。文章详细阐述了升级前的版本检查、数据备份等准备工作,逐步演示了通过APT包管理器进行升级或指定版本安装的操作步骤,并强调了升级后的验证与常见问题回滚方案,确保业务容器平稳过渡。

postgres8guard的博客 478

微信android发送图片,[求助]Xposed微信发送图片方法

基于微信7.0.3发送文本发送文件的方法都已经找到了(从其他地方复制到了)但是发送图片方法一直找不到,就算找到了也会报错插入代码import android.content.Intent;import android.net.Uri;import android.os.Environment;import android.util.Log;import java.io.File;import ja...

weixin_39714763的博客 795

Spring Cloud 整合(一) CRUD

Springcloud 整合之 CRUDSpringcloud介绍功能概述为什么要选用Springcloud Springcloud介绍 功能概述 实现微服务 Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的某些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态)。分布式系统的协调导致样板式样,并且使用Spring Cloud开发人员可以快速站起来实现这些样板的服务和应用程序。 为什么要选用Springcloud

Kerwin-Lin的博客 1501

5种隐藏代码到图片的实用技巧:从Notepad++到Linux命令全解析

本文详细解析了5种将代码或文本隐藏到图片中的实用数据隐写技巧。从Notepad++尾部追加、Windows命令行合并,到编辑图像元数据、使用十六进制编辑器,再到Linux的cat/dd命令,全面覆盖了从图形界面到命令行的工程化实践方法,帮助开发者和安全研究人员掌握隐蔽信息传输与存储的核心技术。

hh234的博客 353

利用xposed自动获得微信个人收款二维码链接和收款记录

一、说明         现在的App一般都会带有支付功能,而现在比较流行的支付一般有支付宝、微信、银行卡等,一般情况下,应用开发者会直接对接支付宝、微信或者第三方支付公司的Api,以完成支付,但是都需要收取不小的费率,于是,有的第三方支付平台就想到了钻空子的方法,利用一些特殊的手段获得收款二维码以及收款记录,这样就可以绕过支付平台完成支付过程了,本篇文章的目的就是分析如何完成这样一个流程,本文...

xiao_nian的博客 1万+

手把手教你学veriolg(二十六)-- Verilog CIC 滤波器设计

目录 Verilog CIC 滤波器设计1. CIC 滤波器的基本原理2. Verilog 实现3. 说明4. 测试激励5. 总结 CIC(Cascade-Integrator-Comb)滤波器是一种特殊的数字滤波器,常用于多速率信号处理中,尤其是用于信号的上采样(插值)和下采样(抽取)。CIC 滤波器的特点在于它具有简单的硬件实现、不需要乘法器(仅使用加法器和延迟元件)、且具有线性相位特性。然而,CIC 滤波器的缺点是它会产生较大的量化误差,因此在设计时需要特别注意字长的选择以避免溢出。1. CIC 滤波

MHD0815的博客 890

Android中实现微信本地视频发布到朋友圈功能

编码美丽 2016-11-14 17:49 一、前言 前一篇文章已经详细介绍了如何使用Xposed框架编写第一个微信插件:摇骰子和猜拳作弊 本文继续来介绍如何使用Xposed框架编...

byc6352的专栏 2138

【Simulink教程案例7】基于Simulink的滑模控制器设计与实现

欢迎订阅滑膜控制是一种变结构控制策略,其和常规控制方法的主要区别在于控制的不连续性,即一种使系统结构随时间变化的开关特性。所以,滑膜控制器也叫做变结构控制器,其本质是一类特殊的非线性控制器,并且这种非线性为不连续性。滑膜控制器和其他控制方式最大的区别在于其结构的不固定性,在其工作过程中,系统当前的状态会发生变化,使得系统按照预先设置的“滑动模态”的状态轨迹运动。正是由于这个特点,滑膜控制器具有快速响应的优点。滑模控制的基本定义如下所示:1).穿越切换面上的某个点;2).从切换面上的某个点离开;

FPGA/MATLAB学习教程/源码/项目合作开发 3240

基于Simulink的间接功率控制的矩阵变换器

通过上述步骤,我们成功设计并实现了基于 Simulink 的间接功率控制的矩阵变换器仿真模型。该模型能够通过控制输入电流和输出电压,实现对功率的间接控制,适用于电机驱动、可再生能源系统、电力传输等领域。通过虚拟场景仿真、参数优化和性能评估,验证了系统的稳定性和高效性,并通过调整 PI 控制器参数和优化调制算法,进一步提升了系统的性能。

MHD0815的博客 296

Android”挂逼”修炼之行—微信实现本地视频发布到朋友圈功能

一、前言 前一篇文章已经详细介绍了如何使用Xposed框架编写第一个微信插件:摇骰子和猜拳作弊器  本文继续来介绍如何使用Xposed框架编写第二个微信插件,可以将本地小视频发布到朋友圈的功能。在这之前我们还是要有老套路,准备工作要做好,这里还是使用微信6.3.9版本进行操作,准备工作: 1、使用apktool工具进行反编译,微信没有做加固防护,所以这个版本的微信包反编译是没有任何问题

六桥风月IT随笔 1109

Qt软件开发-Qt编译zlib完成文件压缩解压(win10)

在软件开发中进行有需求需要将生成的一些文件打包上传到服务器,或者从服务器下载压缩包下来内部解压。或者自己做一些打包工具,那么使用zlib开源就可以很方便的完成。接下来介绍在zlib在windows下如何利用Qt进行编译,调用,介绍mingw、msvc,32/64位编译办法,完成zip文件打包生成例子。可以单文件压缩打包,多文件压缩打包,目录压缩打包等等。

2216

android 本地视频分享到朋友圈,Android"挂逼"修炼之行---微信实现本地视频发布到朋友圈功能...

原文链接:blog.youkuaiyun.com/jiangwei0910410003一、前言本文将介绍如何使用Xposed框架编写微信插件,可以将本地小视频发布到朋友圈的功能。在这之前我们还是要有老套路,准备工作要做好,这里还是使用微信6.3.9版本进行操作,准备工作:1、使用apktool工具进行反编译,微信没有做加固防护,所以这个版本的微信包反编译是没有任何问题的。2、借助于可视化反编译工具Jadx打开...

weixin_39817391的博客 708

动态SLAM中的YOLO与ORB-SLAM3融合:实时目标检测与动态点云滤除实战

本文介绍了如何结合YOLOv5目标检测与ORB-SLAM3视觉SLAM系统,实现动态环境下的目标检测与视觉SLAM任务。文章详细阐述了从源码下载、依赖安装(包括libtorch配置)、编译运行步骤(包括ROS环境和非ROS环境下的编译方法),到RGBD-TUM数据集准备与关联处理的全流程。同时针对常见错误提供了解决方案,如libtorch路径配置、ROS环境冲突等。最后展示了系统运行方法,并探讨了未来可能的优化方向,包括增强目标检测能力和改进动态环境下的地图构建。该集成系统为机器人智能导航和环境感知提供了有

LXY_LOVE36的博客 237

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

01-android 微信实现本地视频发布到朋友圈功能

以下内容是小女子看了转载的 原文链接:http://blog.youkuaiyun.com/jiangwei0910410003/article/details/53045634 哈哈尊重原创! 一、前言 前一篇文章已经详细介绍了如何使用Xposed框架编写第一个微信插件:摇骰子和猜拳作弊器  本文继续来介绍如何使用Xposed框架编写第二个微信插件,可以将本地小视频发布到朋友圈的功能。在这

屎香香wuqingvika的专栏 2869

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android"挂逼"修炼之行---微信实现本地视频发布到朋友圈功能

一、前言 前一篇文章已经详细介绍了如何使用Xposed框架编写第一个微信插件:摇骰子和猜拳作弊器  本文继续来介绍如何使用Xposed框架编写第二个微信插件,可以将本地小视频发布到朋友圈的功能。在这之前我们还是要有老套路,准备工作要做好,这里还是使用微信6.3.9版本进行操作,准备工作: 1、使用apktool工具进行反编译,微信没有做加固防护,所以这个版本的微信包反编译是没有任何问题

Jingle的专栏 5156

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Android插件:关闭WIFI下微信朋友圈视频自动播放插件开发过程详解

Android插件:屏蔽微信7.0.5WIFI下自动播放视频插件开发过程详解 本文将会详细介绍怎么开发一个屏蔽微信(7.0.5)WIFI下自动播放视频插件 背景介绍 周五下班在地铁上刷微信时看到一个新闻,说是微信更新后在WIFI下自动播放视频还没法关闭。这个问题前几天我也遇到了,但是我记得设置里边有一个工作可以关闭视频自动播放的,但是后来发现还是自动播放了。其实原因下边这两个网友说的已经很明...

我叫王哈哈 1839

Android中Xposed框架篇---利用Xposed框架实现拦截系统方法

原创 2016-10-20 北京猿人 编码美丽 编码美丽 编码美丽 微信号 jiangwei0910410003 功能介绍 介绍编码相关的技术知识,主要包括:Android和iOS两个平台内容,还会介绍前端技术包括H5+CSS+JS等,同时也会涉及到脚本语言Python的知识,同时也会介绍一些关于App设计相关的UI知识! 点击顶部蓝字"编码美丽

u011277123的博客 4429

最新微信密友使用方法配合微x模块更完美无需root适合任何安卓手机

关于密友的激活使用方法演示

专注技术分享 2万+

WeChatPad:安卓手机秒变平板模式,实现微信多设备登录的终极解决方案

你是否曾经因为微信"手机和平板不能同时在线"的限制而烦恼?工作消息和生活聊天混在一起,频繁切换账号让人疲惫不堪。今天我要为你介绍一个革命性的开源项目——WeChatPad,这是一个基于LSPosed框架的安卓模块,能够让你的手机伪装成平板设备,彻底打破微信的设备限制,实现真正的**微信平板模式**和**多设备登录**。 ## 为什么你需要微信平板模式? 在数字生活中,微信已经成为我们不可或缺的

gitblog_00609的博客 546

wechatapi--微信ipad协议个人号开发

无论是构建营销自动化系统、智能客服助手,还是进行精细化的社群数据分析,WeChatAPI都能通过其丰富的标准化接口与专业的技术支持,帮助企业将繁重、重复的“手动运营”转化为高效、精准的“代码驱动”,从而充分释放微信生态的潜在商业价值。调用API实现功能:根据开发语言选择对应的SDK,参考官方文档,传入wId、消息接收者ID、内容等参数,即可调用如sendText(发送文本)、sendImage(发送图片)、createChatRoom(创建群聊)等接口实现具体功能。

weixin_36648445的博客 595
上一篇: 微信网页版协议分析和实现机器人
下一篇: javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name解决
THMAIL
博客等级 码龄10年 2434粉丝 432原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值