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

Android技术篇 尼古拉斯.赵四 12514℃ 0评论

一、前言

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

1、使用apktool工具进行反编译,微信没有做加固防护,所以这个版本的微信包反编译是没有任何问题的。

2、借助于可视化反编译工具Jadx打开微信包,后续几乎重要分析都是借助这个工具来操作的。

 

二、猜想与假设

做好上面这两步之后,加上我们在之前的那个编写插件的基础之上,我们本次操作就应该非常简单了,还记得之前的插件的突破口是啥吗?看过文章的同学应该了解通过分析界面的控件来获取到id值,然后全局搜索得到的突破口,那么本文其实可能不需要这个方式了,而是另外一种方式,下面来详细介绍一下。在这之前我们先来看看微信正常的发布小视频到朋友圈的方式,会跳转到这个发布页面:

那么我们又要开始大胆的猜想了:

首先这个页面有的元素:标题,小视频,地理位置等信息,而这些信息应该会在请求发布的时候携带到服务器上。这个有点类似于小文件的上传功能。所以这个视频的文件是如何得到的。那么可以得到的假设:这个页面是一个Activity页面,可能从其他页面跳转过来的,同时会把这些元素信息通过intent携带过来,而小视频是个文件,所以应该会携带文件的名称。

 

三、逆向分析

有了这猜想之后,咋们就可以开始操作了,首先得到这个页面的activity名称,这个比较简单了,直接使用一个命令即可:adb shell dumpsys activity top

看到这个页面的名称是SightUploadUI,我们借助Jadx反编译微信之后,找到这个类: