微信HOOK 实现自动下载视频

1、前言

在收发消息的接口中,图片和文件这类接口是相对容易自动下载,但是视频的下载是需要手动点击的,并且只有这一种下载方式,实现自动化也比较困难,一些项目的开发中,需要自动下载收到的视频并保存,这期我们就着重解决这个问题

2、分析

bash 复制代码
<?xml version="1.0"?>
<msg>
<videomsg aeskey="" cdnvideourl="" cdnthumburl="" length="565725" playlength="3" cdnthumblength="29225" cdnthumbwidth="720" cdnthumbheight="1280" fromusername="" md5="" newmd5="" isplaceholder="0" rawmd5="" rawlength="0" cdnrawvideourl="" cdnrawvideoaeskey="" overwritenewmsgid="0" originsourcemd5="" isad="0" />
</msg>

上述代码是我们收到视频消息文字内容的数据,其中包含了视频的长度、宽度和高度,并使用aes加密方法加密了cdnvideourl字段的内容,可以看到其aeskey字段为其中的解密密码,但是这里我们并不需要继续深入研究加密,这些字段的内容已经足够使用了

3、汇编

使用汇编手段,下断调试,我们可以锁定到具体点击视频后,执行下载代码的call是哪一个

如图

接下来就是要分析这个call,他的寄存器以及push推了哪些数据进堆栈

我们会发现有一个重要的地址保存着非常复杂并庞大的数据结构

如图

其中部分内容与我们收到的字段内容一致,可以确定这个数据结构在下载视频中起到关键作用

所以我们必须要分析并组装相同的数据结构来调用call才行实现自动下载视频

4、调用

分析和组装数据结构是一个耐心的工作,组装完成后就可以调用测试了

具体视频文件保存在默认保存路径的\FileStorage\Video下

接口运行中会出现后缀名为.mp4.wxtmp的临时文件,用来保存视频下载过程中的数据,此时我们只需要等待几秒,下载完成后,即会出现完整的视频文件

5、结语

本次我们简单介绍了HOOK视频接口,从手动带自动的过程,其中难点在于数据结构体的分析和组装,完成组装后,接口自然就可以顺利运行。

有本接口或其他接口学习交流的需求,可以点击我的头像查看简介。

相关推荐
挨踢学霸9 分钟前
MsgHelper 5.0 全新发布:微信群发+微信群发群双引擎,按标签群发/定时群发/多于500人群发,数据本地化守护企业隐私安全
人工智能·安全·微信·自动化
阳明山水1 天前
MAPE仅2%为何业务仍不满意?
人工智能·深度学习·机器学习·微信·微信开放平台
微信api接口介绍3 天前
WTAPI与AI集成:下一代个微自动化解决方案
运维·开发语言·人工智能·微信
赏金术士4 天前
Kotlin 从入门到进阶 之委托 模块(六)
python·微信·kotlin
赏金术士4 天前
Kotlin 从入门到进阶 之基础语法模块(一)
开发语言·微信·kotlin
yantaohk5 天前
一键下载微信视频号所有页面视频,支持批量下载、加密视频解密、自动去重
网络·微信·音视频
西洼工作室5 天前
个人资质实现微信授权登录和内嵌微信二维码扫码登录
python·微信·uni-app·全栈
@Ma5 天前
基于WeChatBot云端微信saas框架实现微信群自动回复机器人定时微信群发送消息功能,文字消息,图片,视频,文件定时批量群发微信群
微信·机器人
智慧医养结合软件开源6 天前
可视化呈现长者分布与年龄结构,赋能精准康养管理
大数据·安全·百度·微信·云计算
小姑爷7 天前
微信4.1.5.16 UI树“消失”?UIAutomation实战复现+AI驱动RPA落地方案
人工智能·ui·微信