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

Spring Authorization Server实战:从零搭建OAuth2.1授权中心(含数据库改造)

本文详细介绍了如何从零开始使用Spring Authorization Server搭建符合OAuth2.1规范的授权中心,并完成关键的数据库持久化改造。内容涵盖微服务架构下的统一认证需求、基础配置、数据库表设计、高级特性(如令牌自定义、性能优化)以及与现有系统(如SSO、Gateway网关)的集成实战,为构建生产级授权服务提供完整指南。

weixin_29315091的博客 253

微信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

手把手教你用SIMCOM A7670C_FASL模组实现双路MQTT连接阿里云(附完整源码)

本文详细介绍了如何使用SIMCOM A7670C_FASL 4G模组实现双路MQTT连接阿里云,包括硬件配置、开发环境搭建、双路MQTT架构设计及实现细节。通过完整的源码示例和实战指南,帮助开发者快速掌握物联网设备开发中的多路MQTT连接技术,提升工业级应用的开发效率。

weixin_33696822的博客 227

Keras中LSTM输入数据重塑与预处理实战指南

LSTM(长短期记忆网络)作为循环神经网络的重要变体,在时间序列建模中发挥着关键作用。其核心原理是通过门控机制学习长期依赖关系,而输入数据的正确重塑是实现这一功能的基础。在Keras框架中,LSTM要求输入数据必须组织成(samples, timesteps, features)的三维张量结构,这与传统全连接网络的处理方式截然不同。从工程实践角度看,合理的数据预处理能显著提升模型性能,特别是在处理温度预测、股票价格分析等时间序列任务时。常见的数据源如CSV文件、图像序列等都需要特定的转换方法,包括使用Tim

weixin_42300144的博客 305

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

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

xiao_nian的博客 1万+

MMDetection框架入门教程(完全版)

  网上MMDetection的教程看似有很多,但感觉都不成系统,看完一圈下来还是不知道MMDetection要怎么用。这里还是推荐直接跟着官方教程,结合源码学习MMDetection,相关链接汇总如下: 官方教程 - MMCV 官方教程 - MMDetection 官方教程 - 不得不知的 MMDetection 学习路线(个人经验版) 西安交大课件 - mmdetection教程(使用篇)   本文会介绍如何在MMDetection中从头开始搭建一套属于自己的算法。前几篇博客算是本人学习过...

Sual 10万+

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

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

byc6352的专栏 2138

三相电机控制入门:端电压、相电压、线电压到底怎么测?(附实测波形对比)

本文为三相电机控制初学者提供了端电压、相电压和线电压的完整测量指南。通过厘清三者的物理定义与测量方法,详细讲解了如何搭建虚拟星形点电路,并对比分析了方波、SPWM和SVPWM三种主流控制模式下关键电压波形的核心特征与差异,帮助工程师掌握正确的示波器测量与波形解读技巧。

oauth7security的博客 650

【Rcode】生存分析: KM & COX回归& 随机森林& nomogram

本文使用了R——survival包下的lung数据进行方法测试: 1)KM 2) Cox回归:多因素 3)随机森林因子(根据cox回归结果) 4)nomogram ( 根据cox回归结果,建立了中位生存时间,1年5年生存率的概率计算) -------------------????????‍♀️本文只有干货,非常干!????----------------------------- 一、数据加载 #生存分析 library("survival") library("survminer") data("

weixin_43172152的博客 9273

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

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

六桥风月IT随笔 1109

28、基准剂量法:原理、应用与计算详解

本文详细介绍了基准剂量法(BMD)的原理、在监管机构中的应用以及具体的计算方法。内容涵盖样本量与BMD的关系、主要监管机构如EPA对BMD的应用、BMD的模型选择与数据拟合过程、拟合优度评估、下置信限(BMDL)计算,以及实验设计对BMD结果的影响。同时,还讨论了剂量指标和响应选择的关键问题,为理解和应用基准剂量法提供了全面的参考。

info6的博客 280

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

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

weixin_39817391的博客 708

基于Simulink的鲸鱼优化算法(WOA)MPPT仿真

摘要:本文介绍了基于Simulink的鲸鱼优化算法(WOA)在光伏MPPT控制中的应用。WOA模拟座头鲸的"气泡网捕食策略",通过包围猎物、螺旋收缩和随机搜索三阶段动态平衡全局探索与局部开发能力,有效解决局部阴影导致的多峰P-V曲线问题。文章详细讲解了WOA-MPPT的Simulink建模过程,包括多峰光伏阵列建模、WOA控制器实现和Boost变换器控制。仿真结果显示,在三种典型工况下,WOA-MPPT的追踪效率>99.3%,动态响应时间<0.15s,性能优于传统算法。最后提出了混合WO

amy_mhd的博客 72

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

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

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

屎香香wuqingvika的专栏 2869

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

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

Jingle的专栏 5156

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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、付费专栏及课程。

余额充值