首页 > 其他分享 >写个视频号下载工具

写个视频号下载工具

时间:2024-01-27 18:23:35浏览次数:32  
标签:下载工具 视频 写个 微信 aardio 解密 js 下载

前言

之前在看雪看到一篇关于视频号加密逆向的文章,想着自己复现一下,学习一下wasm逆向。

又发现文中提到的WeChatVideoDownloader软件已经开始收费了。不过收费也很合理,毕竟开发和维护都是需要时间成本的。

那就自己开发一个出来,原理看雪那篇文章已经说的很明白了,而且WeChatVideoDownloadergithub现有的代码,他的解密逻辑用的也是这篇文章中的,基本没做改动。

具体原理

WeChatVideoDownloader 这个是使用electron开发的桌面程序,然后用代理来拦截视频的地址和解密需要的seed(decode_key),然后在electron调用解密的js来解密。

electron过于臃肿,加上我也不太熟悉,我从另一个项目(https://github.com/xuncv/WechatVideoSniffer) 看到了更好的实现方法:aardio+ fiddlecore,这个方法打包的exe才几兆的大小。

这个工具的缺点在于无法跨平台,也就是只能在Windows下使用。我也没有Mac,对我来说不算是缺点。

实现的代码和上面两个项目基本类似,只需要增加解密的代码。逆向的过程我稍微说一下我的见解,相同的部分就不多赘述了。对代码感兴趣的可以自己看下面github开源的代码。

用aardio写完后打包后的软件只有4M,如果用upx压缩一下,可能就2M,不过upx压缩后的软件容易报毒,我一般自己用的话才会压缩。

使用方法

软件界面如下(中间是文本框,用来输出拦截到的信息):

先点击监听(第一次会提示安装证书),然后打开一个视频,就能在文本框看到监听到的下载链接和弹出的下载进度条。删除了下载按钮,只要拦截到就会自动下载到当前软件的cache目录下

注意事项:

  1. 如果是第一次使用软件,需要先退出微信,然后点击删除缓存按钮,等待删除完成。也可以手动去C:\Users\你的用户名\AppData\Roaming\Tencent\WeChat\radium\web\profiles删除目录下的所有文件,具体原因见下面的解释
  2. 点击监听后,最好只打开需要下载视频的详情页(先分享给文件传输助手打开),不要去打开列表页,不然会有很多的视频跳出来,会有意想不到的bug,这种我不去解决。
  3. 如果报毒的话,这个可以自己根据源码编译一个(应该也是报毒的),免杀也是门技术,我不会

批量下载

通过抓包来实现,其实就不太可能批量下载。只能逆向然后hook微信来实现,这个就不多说了。这个需求的人也不会太多,有需求的可以提预算我帮你做一个。

下载地址

下载有两个途径:

  1. 公众号后台回复视频号下载
  2. 用github的源码自己编译一个。

逆向

微信浏览器F12

逆向首先需要一个能打开微信浏览器F12的工具,抓包工具只能静态分析js,在缺乏动态调试的环境下虽然可能能猜出来加密逻辑(微信的js没做混淆),但是流程不够清晰。

打开F12方法:文章是通过找到跳转的分支,然后修改跳转来实现。我看了下跳转分支的代码,它其实就是在启动浏览器的时候多加了个启动参数,所以我们可以直接hook CreateProcess,给浏览器的启动参数增加一个调试参数就能实现。这样的话更通用些,不需要关心浏览器和微信的版本,我测试了下,在最新的3.9.9也是可以用的。

其实小程序的F12也是类似的逻辑,有兴趣的可以自己hook日志看看。

打包了个工具给大家免费用,需要的在公众号后台回复微信浏览器

分析

WeChatVideoDownloader是用electron开发的,可以执行js环境,自然就能加载wasm。那还得搜一下aardio怎么执行js来做解密数组的生成。

但是我突然一想 为啥要自己生成解密数组,既然seed是通过hook拿到再传给electron客户端解密,我直接hook拿到解密需要的数组传给aardio不是更方便,还省了js环境。其实最开始开始想的是直接拿到解密后的视频,调试发现视频是分段下载和解密的,那不如拿解密数组。

根据文章已经分析的结果(解密需要的数组就是p.decryptor_array),我也可以不去分析wasm里面具体什么逻辑,hook这个位置将它传给aardio就完成了。

测试了下实现并不麻烦,不过拿不到标题和链接。链接可以通过代理拦截到,标题的话应该只能hook,想了想没有标题也不碍事,自己重命名一下的事。

Wasm

wasm之前也没接触过,所以我还是继续往下研究,接着我在node环境中测试,甚至都不需要补环境,把调用wasm的那个js放到node里执行,就能计算出decryptor_array

估计ida打开也就能获取文章中提到的一些东西,那还是下次看到个复杂的wasm再研究。

这样的话用aardio加载webview来实现一个解密数组生成应该也不难,这里我就不写了,有兴趣的可以自己实现。

webview可以使用edge来做(aardio中有范例),因为系统基本都自带edge,所有实现生成的exe也不会太大。

拦截不到

刚开始拦截不到js,在Devtools里也没看到js的加载,想了想应该是因为缓存,没有从网络请求,勾选Disable cache后,确实就拦截正常了。

但是这在aardio中勾选不了这个选项,总不能要求用软件的人下载视频前都先打开一遍F12勾选,这不太现实。看了下WeChatVideoDownloader的issue里,有人找到了微信浏览器的缓存目录,直接删除这个目录也可以实现。

我就在界面增加了一个按钮用来删除这个目录,不需要手动到这个目录去删除了,应该是需要管理员权限的,删除失败的话退出以管理员权限在运行一遍。

代码地址

https://github.com/kanadeblisst00/WechatVideoSniffer

本文由博客一文多发平台 OpenWrite 发布!

标签:下载工具,视频,写个,微信,aardio,解密,js,下载
From: https://www.cnblogs.com/kanadeblisst/p/17991759

相关文章

  • AppleScript成功实现FaceTime语音,FaceTime视频,FaceTime数据筛选,检测手机号是否开通
    FaceTime是苹果公司iOS和macOS(以前称MacOSX或OSX)内置的一款视频通话软件,通过Wi-Fi或者蜂窝数据接入互联网,在两个装有FaceTime的设备之间实现视频通话。其要求通话双方均具有装有FaceTime的苹果设备,苹果ID以及可接入互联网的3G/4G/5G或者Wi-Fi网络。 一、Windows电脑上部署苹......
  • [经验] 鲁班锁怎么拼装6块视频教程
    1、鲁班锁怎么拼鲁班锁是一种传统的木制机械锁,又称为“八卦锁”、“梅花锁”,已经有数千年的历史。它由两个零部件组成,即外面的“锁板”和里面的“锁芯”,需要以特定的方式拼装才能打开和关闭。如今,它已经成为一种文化遗产,备受人们所喜爱。在拼装鲁班锁之前,首先要了解组成鲁班锁的零......
  • 一对一视频app开发,如何分块加载大文件?
    一对一视频app开发,如何分块加载大文件?后端:使用Koa2实现分块传输首先,在一对一视频app开发中,我们需要设置后端以支持分块传输编码。以下是使用Koa2的示例代码:constKoa=require("koa");constfs=require("fs");constapp=newKoa();app.use(async(ctx)=>......
  • Kubernetes 推荐学习资料 课程 视频
    以下是一些推荐的Kubernetes学习资料、课程和视频:学习资料:Kubernetes官方文档:https://kubernetes.io/docs/home/《Kubernetes操作指南》(KubernetesUp&Running)一书,由KelseyHightower、BrendanBurns、JoeBeda著。《KubernetesinAction》一书,由MarkoLuksa著。《Kuberne......
  • 视频智能分析:冶炼/冶金工厂视频智能监管方案的设计和应用
    一、背景与需求随着工业4.0的推进,冶金行业正面临着转型升级的压力。为了提高生产效率、降低能耗、保障安全,冶金智能工厂视频监管方案应运而生。该方案通过高清摄像头、智能分析技术、大数据处理等手段,对工厂进行全方位、实时监控,为管理者提供全面的生产信息。《有色金属行业智能......
  • 机房及设备安全智慧监管AI+视频方案的设计和应用
    一、背景分析随着互联网的迅猛发展,机房及其配套设施的数量持续攀升,它们的运行状况对于企业运营效率和服务质量的影响日益显著。作为企业信息化的基石,机房的安全监测与管理的重要性不容忽视。它不仅关乎企业的稳定运营,同时也直接关系到员工安全和资产保护。然而,传统的机房管理方式......
  • 智能分析网关V4智慧机房:视频AI智能安全监管方案
    一、背景分析随着互联网的迅猛发展,机房及其配套设施的数量持续攀升,它们的运行状况对于企业运营效率和服务质量的影响日益显著。作为企业信息化的基石,机房的安全监测与管理的重要性不容忽视。它不仅关乎企业的稳定运营,同时也直接关系到员工安全和资产保护。然而,传统的机房管理方式......
  • LntonAIServer视频汇聚算法分析平台区域行人入侵算法检测
    在这个信息化飞速发展的时代,安全已成为我们不可忽视的话题。随着科技的进步,传统的物理防护手段已无法满足日益增长的安全需求。在这样的背景下,LntonAIServer视频汇聚算法分析平台应运而生,它如同一双智慧之眼,守护着我们的安全边界。LntonAIServer平台的核心技术之一便......
  • Premiere Pro 2024:用故事触动人心,让视频更精彩 mac/win版
    PremierePro2024是一款专业的视频剪辑软件,被广泛应用于电影、电视、广告和网络媒体等领域。它能够帮助用户快速高效地将原始素材转化为精美的视频作品,是视频制作人员的必备工具之一。→→↓↓载PremierePromac/win版 在PremierePro2024中,用户可以导入各种视频、音频和......
  • 视频抠除指定的背景颜色播放
    <template><divstyle="background:red;padding:20px"><videoref="videoEl"src="/movie.mp4"></video><hr/><canvasref="canvasEl"></canvas><hr/>......