前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在Mac上用手机抓包软件Charles抓取微信小程序中的高清无水印视频

在Mac上用手机抓包软件Charles抓取微信小程序中的高清无水印视频

作者头像
用户9127725
发布于 2022-08-08 02:41:13
发布于 2022-08-08 02:41:13
2.3K00
代码可运行
举报
运行总次数:0
代码可运行

    手机抓包是一名测试工程师常备的技能,比如我想查看一个接口请求的参数、返回值,还有移动设备上的http请求、https请求,这一次的背景是我们想要在app端和小程序端抓取一些视频,这里用腾讯视频作为例子,使用mac系统的Charles软件(有点类似win系统中的fiddler,使用方式上大同小异)来进行视频接口与地址的抓包和嗅探。

    同时抓包工具也有利于线上生产环境问题的分析,前几天有个做服务端的同学跟我说他不用抓包工具,遇到问题直接debug代码,那我问他,如果线上服务的话,你怎么调?在实际项目中,没有遇到跟客户端相互扯皮的事情吗?客户端说他没问题,服务端也说他没问题,到底谁有问题?这时候没必要相互推脱,拿数据出来说话才是王道。抓包工具做了什么?它把客户端的请求数据,以及服务端返回的数据完完整整的抓取下来,供攻城狮分析问题。所以首先分析问题才是最重要的,而不是一上来就跟踪代码debug

    Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)

    首先安装Charles,直接去官网下载即可 https://www.charlesproxy.com/latest-release/download.do  最新版本号是4.5.1,值得一提的是Charles也支持64位的win系统

    安装好后,打开Charles,在菜单中打开代理

    这样,Charles就在本地直接起了一个代理服务,默认端口号是8888

    此时打开命令行,输入ifconfig(win下输入ipconfig),查看本机的局域网ip地址

    将你的手机和电脑连入到统一局域网内,然后设置wifi连接的高级设置,将刚刚的本机ip地址和端口号填入到代理设置内

    这时,手机端的一切网络请求就都可以在电脑端的Charles界面中展示出来了

    在手机端打开腾讯视频app或者腾讯视频小程序,随便点开一个视频

    我们看到包括视频地址的一切请求都一览无遗,将地址复制到浏览器中查看

    这样我们就获取了手机端播放的视频,随后我们直接可以通过命令或者写python脚本下载到本地,这里我们使用linux命令wget

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget http://ugcws.video.gtimg.com/uwMROfz2r5zEYaQXGdGnC2dfDmZ8QagOBRrURGecmSBtB5p6/u0851ed5e06.mp4?vkey=2F247F5C2A6500312D6F6B52E65F53DC4770569E7A9710825CEA1DC8A0E99927E68B68C5C83D12E503C70DB9FDE136B95AD4FBA7C169FF1E334F8584173754F9E76E83D5A5A4E4D5CA182AA0E0C478B59C2AEAFBEEFF14CB2531CF18881741B1CEA42BACB9150D485459FA19B14D194D85A3EE1F34E61433

    视频已经下载到了本地,可以随时播放

    需要注意的点:

    1、当我们不抓包的时候,会将Charles关闭,这时候你的手机是访问不到网络的,因为设置了代理(就是Charles),这时候需要将Android手机中的代理关闭,这个是抓包时经常犯的错。     2、Charles抓取,必须保持电脑端和手机端连接的wifi,是在同一个网络环境下。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
带你了解控制线程执行顺序的几种方法
通常情况下,线程的执行顺序都是随机的,哪个获取到CPU的时间片,哪个就获得执行的机会。不过实际的项目中有时我们会有需要不同的线程顺序执行的需求。借助一些java中的线程阻塞和同步机制,我们往往也可以控制多个线程的执行顺序。
用户7634691
2020/08/10
1.9K0
同步屏障CyclicBarrier
CyclicBarrier,根据字面意思理解:循环屏障。屏障的意思:CyclicBarrier可以让一组线程到达某个屏障点时被阻塞,直到最后一个线程到达屏障点时,屏障才会放开,所有被屏障阻塞的线程才开始执行任务;循环:当所有线程被释放后,这个CyclicBarrier可以被重用。 有两个很常用的构造方法: 第一个: /** * Creates a new {@code CyclicBarrier} that will trip when the * given number
IT云清
2019/01/22
4610
JUC包下的CountDownLatch,CyclicBarrier,Semaphore
①.从CountDownLatch的设计来看,可以做汇总的操作,例如计算员工工资,这边启动多个线程同时计算等所有线程执行完毕之后,计算需要发放的总额 final ConcurrentHashMap<String, Integer> resultMap = new ConcurrentHashMap<String, Integer>(); final CountDownLatch c = new CountDownLatch(10); final Random r = new Random();
用户1215919
2018/02/27
5330
使用Java线程同步工具类CountDownLatch
java.util.concurrent.CountDownLatch是Java并发并发编程中的线程同步工具类,基于AQS(java.util.concurrent.locks.AbstractQueuedSynchronizer)实现。 CountDownLatch工具类主要应用在如下场景:等待一组线程执行完毕后继续执行后续操作。
编程随笔
2023/10/15
2010
Thread.join() 的使用
如果一个线程A执行了thread.join()语句,其含义是:当前线程A等待thread线程终止之后才 从thread.join()返回。线程Thread除了提供join()方法之外,还提供了join(long millis)和join(long millis,int nanos)两个具备超时特性的方法。这两个超时方法表示,如果线程thread在给定的超时 时间里没有终止,那么将会从该超时方法中返回。 在代码清单所示的例子中,创建了10个线程,编号0~9,每个线程调用前一个线程的 join()方法,也就是线程0结束了,线程1才能从join()方法中返回,而线程0需要等待main线程结 束。
爱明依
2019/03/12
8.7K0
多线程下ThreadLocalRandom用法[通俗易懂]
学习 ThreadLocalRandom 的时候遇到一些疑惑,为何使用它在多线程下会产生相同的随机数?
Java架构师必看
2022/03/12
8750
Java锁的分类_地锁怎么安装
  在笔者面试过程时,经常会被问到各种各样的锁,如乐观锁、读写锁等等,非常繁多,在此做一个总结。介绍的内容如下:
全栈程序员站长
2022/09/20
2520
CyclicBarrier使用方法
CyclicBarrier字面意思就是回环栅栏,通过它可以实现让一组线程等待至某个状态之后再全部同时执行。叫做回环是因为当所有等待线程都被释放以后,CyclicBarrier可以被重用。我们暂且把这个状态就叫做barrier,当调用await()方法之后,线程就处于barrier了。
benym
2022/07/14
9530
并发工具箱 concurrent包的原理分析以及使用
BlockingQueue 通常用于一个线程生产对象,而另外一个线程消费这些对象的场景。下图是对这个原理的阐述:
小勇DW3
2018/08/30
8630
并发工具箱 concurrent包的原理分析以及使用
CountDownLatch用法详解
CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有框架服务之后执行。
全栈程序员站长
2022/09/14
9.2K0
CountDownLatch用法详解
并发编程系列之Semaphore用法简介
理解:就是要给令牌池,可获取信号量(令牌或者许可)、放入信号量。常用于控制并发的线程数,也可用于池类资源的访问控制。
SmileNicky
2021/11/30
7230
啰里吧嗦CountDownLatch
CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行
葫芦娃
2019/04/12
1.5K0
啰里吧嗦CountDownLatch
AQS-semaphore&CyclicBarrier&CountDownLatch源码学习
semaphore&cyclicbarrier&CountDownLatch的介绍
逍遥壮士
2023/02/28
2600
AQS-semaphore&CyclicBarrier&CountDownLatch源码学习
Java计数器之CountDownLatch、CyclicBarrier、Semaphore
在Java里面有几种可以用于控制线程状态的方法,如CountDownLatch计数器、CyclicBarrier循环栅栏、Sempahore信号量。下面就分别演示下他们的使用方法: CountDownLatch CountDownLatch可以实现多线程之间的计数器,并实现阻塞功能。比如某个任务依赖于其他的两个任务,只有那两个任务执行结束后,它才能执行。 import java.util.concurrent.CountDownLatch; public class CountDownLatchTest
用户1154259
2018/04/10
1.1K0
Java计数器之CountDownLatch、CyclicBarrier、Semaphore
基于Lock+Condition实现生产者消费者模式
package demo; import java.util.ArrayList; import java.util.List; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; //产品仓库类 class Storage { private int maxSize; // 缓冲区
程裕强
2022/05/06
1930
基于Lock+Condition实现生产者消费者模式
【死磕Java并发】常用并发工具类详解
在前几篇文章中,我们讲到了线程、线程池、BlockingQueue 等核心组件,其实 JDK 给开发者还提供了比synchronized更加高级的线程同步组件,比如 CountDownLatch、CyclicBarrier、Semaphore、Exchanger 等并发工具类。
Java极客技术
2023/12/13
7370
【死磕Java并发】常用并发工具类详解
java一些常用并发工具示例
最近把《java并发编程实战》-Java Consurrency in Practice 重温了一遍,把书中提到的一些常用工具记录于此: 一、闭锁(门栓)- CountDownLatch 适用场景:多线程测试时,通常为了精确计时,要求所有线程都ready后,才开始执行,防止有线程先起跑,造成不公平,类似的,所有线程执行完,整个程序才算运行完成。 /** * 闭锁测试(菩提树下的杨过 http://yjmyzz.cnblogs.com/) * * @throws Inte
菩提树下的杨过
2018/01/18
5940
2.JUC线程高级-原子变量与CAS算法
执行完i++后为什么结果是10,原因是因为i++操作,jvm底层实际是分为以下三步:(读-改-写)
用户1212940
2022/04/13
2160
2.JUC线程高级-原子变量与CAS算法
ReentrantLock实现原理
建议和上一篇分享结合着看:深入理解AbstractQueuedSynchronizer
Java识堂
2019/08/13
4610
Java并发工具篇
前面我们介绍了 JUC 中的并发容器,它相当于一个同步容器的升级版,很大程度上提高了并发的性能
汤圆学Java
2021/05/12
4920
相关推荐
带你了解控制线程执行顺序的几种方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验