微信小程序抓包你会吗?不会我来教你

news2024/11/27 22:41:03

目录

前言

先来说小程序抓包问题

再说下小程序调试问题

解包wxapkg

调试小程序

总结:


前言

今天聊下微信小程序的抓取,其实小程序的抓取不难,主要解决抓包和如何调试小程序这两个问题。如果你运用chrome调试已经比较熟练了的话,就手到擒来。

先来说小程序抓包问题

不用破解的办法如何抓到小程序的包?破解是个费劲的事,一不小心微信账号还可能被封。

小程序抓不到包通常就是手机的安卓系统版本太高和微信APP的版本太高了。版本越高,通常它的安全性就越好。换用安卓系统是4.4的手机和微信APP版本在6.7左右的版本。使用Fiddler或Charles抓包妥妥的。

如果你实在没有低安卓系统版本手机和低版本微信,继续看下面的文字,待会再介绍一种抓包方法。

只要抓包搞定了,很多小程序也就能抓取了,剩下就是解决IP问题。还有一部分小程序在前端有反爬措施,对请求参数**或混淆了。所以就还得解决小程序调试问题。

 Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

 

再说下小程序调试问题

首先得对小程序有一点理解,小程序简单来说也是一个网站,只是它只能在微信里打开,不能在浏览器里打开。

我们都知道一个网站的前端页面是由html、css、javascript组成,小程序的前端页面也是由类似这样的来组成的。小程序里的数据交互也是由javascript来负责的。所以爬虫调试小程序也主要是调试javascript。

那怎么调试小程序的javascript呢?

当我们在微信里点击小程序时,微信会把这个小程序的前端代码下载到你的手机上。我们只要拿到这个小程序前端代码,就能在微信提供的小程序开发者工具上进行调试。

小程序代码的路径在:

/data/data/com.tencent.mm/MicroMsg/微信号id文件夹/appbrand/pkg/

该路径下以.wxapkg结尾的文件就是小程序前端代码被编译之后的形式。

你会看到很多个.wxapkg文件,因为你打开过很多小程序,最好是你把这个文件下的文件全都删除,重新打开目的小程序。然后里面的.wxapkg文件就都是该小程序的了。

你需要把.wxapkg的文件都拷贝到你的电脑上来。(拷贝该目录需要你拥有root权限,所以你得先把手机root了,或者在安卓模拟器里面使用微信,进行如上操作,模拟器默认是root了的)。

解包wxapkg

我们的目的是拿到小程序的前端代码在小程序开发者工具里面调试,wxapkg是编译之后的小程序,所以还得反编译,让wxapkg解包出源代码。

要感谢开源的世界,已经有爱好者开发出了.wxapkg的解包程序,我们就直接拿过来用。

解包程序的github地址是:

https://github.com/qwerty472123/wxappUnpacker

解包程序是由node.js开发的,所以你得先安装node.js,然后再安装node.js的一些依赖包,作者已经在文字里说得很清楚了。我就不再赘述,网上也有很多该程序的用法文章。

最后你只需要运行命令:

<span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f8f8f8">node xxxxxx.wxapkg
</span></span></span>

node是运行node.js的命令,即可把小程序前端源代码还原了。类似下图这样的。

调试小程序

注册一个小程序开发者账号

注册地址

 Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

 

下载小程序开发者工具:

打开小程序开发者工具,选择导入已有项目,就是选择上面解包出来的那个文件夹。

点击确定。就出现以下界面。

这就可以对该小程序做调试了,界面是不是很熟悉,是不是跟chrome浏览器的调试很相似。你可以点选sources面板,然后对js打断点,也可以在console里直接运行一段js代码。想要知道请求的URL是如何**的,跟chrome一样,打断点调试即可。

另外我文章上半部分说了一个抓包问题,还没有解答,如果是高版本安卓系统,高微信版本如何抓包小程序。一种小技巧就是借助小程序开发者工具来抓包,细看上图红框,有个Network面板,跟chrome的功能是一样的,这个小程序的网络请求在Network面板里能看到。

另外因为这个小程序是别人开发的,你要把这个小程序运行起来,要让它不去验证域名和ssl证书那些,如下。

综上解决了抓包和调试小程序问题,就能抓取绝大部分小程序了。还有一些小程序必须要微信登陆才能访问,要大规模抓取,你还是得解决大量账号的问题。

总结:

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片加入群聊免费领取,群里还有大佬帮忙解答问题,千万不要错过哦。

 Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/628885.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java多线程、进程、并行、并发的理解(通俗易懂)

程序(programm) 概念&#xff1a;是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码。 进程(process) 概念&#xff1a;程序的一次执行过程&#xff0c;或是正在运行的一个程序。 说明&#xff1a;进程作为资源分配的单位&#xff0c;系统在运行时会为每…

基于VITS-fast-fine-tuning构建多speaker语音训练

1 VITS模型介绍 VITS&#xff08;Variational Inference with adversarial learning for end-to-end Text-to-Speech&#xff09;是一种语音合成方法&#xff0c;它使用预先训练好的语音编码器 (vocoder声码器) 将文本转化为语音。 VITS 的工作流程如下&#xff1a; &#xff0…

【CSS按钮特效】css如何实现科技感好看按钮效果(尾附源码下载)

【写在前面】这两天还是比较痴迷于CSS特效的&#xff0c;甚至还想着去用CSS做动画片呢&#xff0c;希望后面能做到&#xff0c;今天主要讲的是我们页面常见的元素-按钮&#xff0c;很多时候按钮也需要高级化&#xff0c;但是很多人苦于没有途径去寻找&#xff0c;于是乎借这个机…

jsx底层渲染机制,函数组件的底层渲染机制

jsx底层渲染机制&#xff01;&#xff01; 1.第一大步创建virtualDom 首先把我们编写的JSX语法&#xff0c;编译为虚拟DOM对象「virtualDOM」&#xff0c;这一步也分为两小步 虚拟DON对象∶框架自己内部构建的一套对象体系&#xff08;对象的相关成员都是React内部规定的)&a…

深入理解深度学习——注意力机制(Attention Mechanism):多头注意力(Multihead Attention)

分类目录&#xff1a;《深入理解深度学习》总目录 在实践中&#xff0c;当给定相同的查询、键和值的集合时&#xff0c;我们希望模型可以基于相同的注意力机制学习到不同的行为&#xff0c; 然后将不同的行为作为知识组合起来&#xff0c; 捕获序列内各种范围的依赖关系 &#…

论文解读:GBPNet:蛋白质结构的通用几何表示学习

GBPNet: Universal Geometric Representation Learning on Protein Structures DOI:https://doi.org/10.1145/3534678.3539441 Github:GBPNet/gbpnet/datamodules at main sarpaykent/GBPNet GitHub 摘要&#xff1a; 蛋白质3D结构的表示学习对于例如计算蛋白质设计或蛋白…

单链表OJ题:LeetCode--160.相交链表

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下LeetCode中第160道单链表OJ题&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; 数据结构与算法专栏&#xff1a;数据结构与算法 个 人…

Lecture 19 Question Answering

目录 introductionIR-based QA (dominant approach)Knowledge-based QAHybrid QAConclusion introduction Definition: question answering (“QA”) is the task of automatically determining the answer for a natural language questionMostly focus on “factoid” quest…

牛客网论坛最具争议的Linux内核成神笔记,GitHub已下载量已过百万

原文地址&#xff1a;牛客网论坛最具争议的Linux内核成神笔记&#xff0c;GitHub已下载量已过百万 1、前言 Linux内核是一个操作系统&#xff08;OS&#xff09;内核&#xff0c;本质上定义为类Unix。它用于不同的操作系统&#xff0c;主要是以不同的Linux发行版的形式。Linu…

网红如何创建百度百科词条?

随着互联网的发展&#xff0c;越来越多的人开始从事网红行业。对于网红来说&#xff0c;提升自己的个人形象至关重要&#xff0c;一个提升品牌形象的快速方式就是创建百度百科词条。网红如何创建百度百科词条&#xff1f;如何创建一个高质量的百度百科词条&#xff1f;下面伯乐…

万维网服务器

一、域名解析gethostbyname函数 struct hostent {char *h_name; /* 官方域名 */char **h_aliases; /* 别名*/int h_addrtype; /* 地址族&#xff08;地址类型&#xff09; */int h_length; /* 地址长度 */char **h_addr_list; …

Qt扫盲-Qt事件系统概述

Qt事件系统概述 一、概述二、事件类型 - Event Types三、事件处理程序 - Event Handlers四、事件过滤器 - Event Filters五、发送事件 - Sending Events1. sendEvent()2. postEvent() 一、概述 在Qt中&#xff0c;事件是由抽象的QEvent类派生而来的对象&#xff0c;表示发生在…

凌恩全新育种分析流程!助力种质资源高分文章发表!

种质资源又称遗传资源。种质是指生物体亲代传递给子代的遗传物质&#xff0c;它往往存在于特定品种之中。如古老的地方品种、新培育的推广品种、重要的遗传材料&#xff0c;野生近缘植物以及利用上述繁殖材料创造的各种遗传材料&#xff0c;都属于种质资源的范围&#xff0c;是…

为什么要使用微软的 Application Framework?

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天来看一下我们为什么要使用微软的 Application Framework&#xff1f; 虽然Application Framework 并不是新观念&#xff0c;它们却在最近数年才成为 PC 平台上软件开发的主流工具。面向对象语言是具体实…

【Spring Boot 初识丨三】starter

Soring Boot 初识 【Spring Boot 初识丨一】入门实战 【Spring Boot 初识丨二】maven 本篇来讲一讲 starter 依赖项 Starter 一、定义二、启动器2.1 应用启动器2.2 生产启动器2.3 技术启动器 一、定义 启动器是一组方便的依赖关系描述符&#xff0c;它包含了一系列可以集成到应…

并行事务会引发的三个问题

并行事务是指同时运行多个事务&#xff0c;每个事务独立地执行&#xff0c;并且不会相互影响。在数据库管理系统中&#xff0c;当多个用户同时对同一个数据集进行读取或者写入的时候&#xff0c;使用并行事务可以提高系统的吞吐量和响应时间。同时&#xff0c;由于并行事务可以…

c++学习之继承

目录 一&#xff0c;为什么需要继承 二&#xff0c;继承的基本概念 三&#xff0c;派生类的定义 四&#xff0c;继承中的析构预构造 1&#xff0c;子类中的构造与析构的顺序 2&#xff0c;子类调用成员对象&#xff0c;父类的有参构造 五&#xff0c;子类与父类的同名处理…

防雪崩利器之Hystrix

Hystrix作为一个容错组件&#xff0c;本文从它的作用、熔断设计、工作流程和应用方面一一道来&#xff0c;帮助大家了解如何使用。 1、什么是灾难性雪崩效应 要讲Hystrix&#xff0c;我们就要讲一种场景&#xff0c;在微服务架构中&#xff0c;如果底层服务出现故障&#xff0…

Ubuntu搭建APM固件编译环境

文章目录 前言一、下载源码二、配置编译环境三、编译固件 前言 Ubuntu20.04 APM 4.2.3 参考链接&#xff1a; https://ardupilot.org/dev/docs/building-setup-linux.html 一、下载源码 git clone https://github.com/ArduPilot/ardupilot.git下载完之后 cd ardupilotgit s…

Lecture 18 Information Extraction

目录 Named Entity RecognitionRelation ExtractionOther IE TasksConclusion information extraction Given this: “Brasilia, the Brazilian capital, was founded in 1960.”Obtain this: capital(Brazil, Brasilia)founded(Brasilia, 1960) Main goal: turn text into str…