最近又收到个任务,要去抓取别人小程序的内容,通过fiddler抓包,请求和响应数据看的我是一脸懵逼,自己造数据是不可能的,小程序看不到js,根本猜不到怎么解密和加密的。网上也有文章说小程序的源码可以通过反编译下载下来,我反正是没成功。那怎么办呢? 想到我们之前用的网页端的自动化测试工具selenium,就不难解决了。数据我解不出来就模拟呗。

移动端自动化测试工具选取 Appium 和 网易的airtest

相比之下我还是选了airtest,因为我们现在测试用的就是airtest,不懂的还能问,嘿嘿。

http://airtest.netease.com/ 下载地址

具体的配置去看他的官方文档,写的很详细,如果还连不上去提issue。我之前折腾了半天,才弄好了,如果出现下面的界面表示连好了

然后我们点connect就会出现手机的同步窗口了

我在这里点开了某个小程序,所以显示这样,需要下载这些视频

分析小程序的细节就不说了,反正数据都是加密的,点开播放页才会出现视频的url。这里前面的动作我就不模拟了,每次都是直接打开这个小程序。有兴趣的自己研究下。所以自动化的动作我们也就清楚了,点进去播放页,点击返回,拉列表。。。循环起来。

airtest用2种方式,一种是图像识别,另一种是poco。

这里我用的是poco,本来想定位ui,然后发现这个ui不准,也不知道怎么回事。然后就使用坐标了。

那里调成Android,我是安卓手机,其它自己选,然后点这个摄像机

放到这个图标上面

然后再控制台就会显示这些信息。这些都什么意思,可以查官方文档。不过通过观察我们可以发现 pos这个应该是全局的位置信息。

点这个我们就可以进播放页了,那么怎么执行点击动作呢?

poco.click([0.49722222222222223, 0.24537037037037038])

上面的就是点击对应的位置信息

依次类推,找到返回位置,点击返回。也可以使用安卓的返回按键事件。

然后如果点击下一个视频的播放页呢

这里,我想的是把下一个移到当前位置就可以了,这样播放按钮的也不需要动了。想到了就干,我们用上面的方法拿到下一个播放的pos

这时候我们只需要把下一个移到上一个的位置就好了。

怎么移?

poco.swipe([0.49722222222222223, 0.5574074074074075], [0.49722222222222223,  0.24537037037037038] )

完整的代码

i = 0 
while True:
    if i>=50:
        break
    poco.click([0.49722222222222223, 0.24537037037037038])
    time.sleep(110)
    poco.click([0.05, 0.06])
    time.sleep(5)
    poco.swipe([0.49722222222222223, 0.5574074074074075], [0.49722222222222223,  0.24537037037037038] )
    i+=1

不过在跑的过程中,坐标总是差点,后续再优化。这个效果就是点击播放页,睡一会等加载,然后点击返回,再把下一个视频移到第一个的位置上,然后再点击,循环。

自动化我们做完了,那怎么拿到数据呢?

这里还要用到一个工具mitmproxy,这个工具是监听所有请求和响应,还可以使用python api获取到这些请求和响应。

https://www.mitmproxy.org/直接官网下载,这里我是windows电脑,直接下载exe安装了。

安装完成后

运行mitmdump,

就会在

生成一个文件夹,里面是证书,如果要监听https的请求,必须安装这个

里面是这些,然后双击第四个安装就可以了,一路选是,受信任的根证书。 具体的自己查,网上很多。

然后手机点开WLAN设置手动代理,ip填运行mitmproxy的电脑ip,端口默认8080。

再在手机上安装证书,手机浏览器输入mitm.it,这里推荐使用chrome,我用的uc根本找不到证书,然后又换成了系统默认的,能点击下载,但是根本下不下来,换成谷歌一下就好了。 注意需要开着mitmdump,或者mitmweb,一个是控制台一个是网页端。

下载下来安装就可以了。

然后环境这时候我们都配好了,想要打开小程序,这时候发现一片白,根本什么都不显示,而其他app都是可以的。这个问题我也查了很久,最终发现降低微信版本就可以。高版本不知道做了什么措施 具体可以看这个

https://xingzx.org/blog/crawl-wechatapp-on-android

然后怎么拿到监听的数据呢?

先下载mitmproxy的包

pip3 install mitmproxy

注意python需要用py3.6及以上。

然后测一下代码

from mitmproxy import ctx
# # 所有发出的请求数据包都会被这个方法所处理
# # 所谓的处理,我们这里只是打印一下一些项;当然可以修改这些项的值直接给这些项赋值即可
# def request(flow):
#     # 获取请求对象
#     request = flow.request
#     # 实例化输出类
#     info = ctx.log.info
#     # 打印请求的url
#     info(request.url)
#     # 打印请求方法
#     info(request.method)
#     # 打印host头
#     info(request.host)
#     # 打印请求端口
#     info(str(request.port))
#     # 打印所有请求头部
#     info(str(request.headers))
#     # 打印cookie头
#     info(str(request.cookies))
#
#
# # 所有服务器响应的数据包都会被这个方法处理
# # 所谓的处理,我们这里只是打印一下一些项
# def response(flow):
#     # 获取响应对象
#     response = flow.response
#     # 实例化输出类
#     info = ctx.log.info
#     # 打印响应码
#     info(str(response.status_code))
#     # 打印所有头部
#     info(str(response.headers))
#     # 打印cookie头部
#     info(str(response.cookies))
#     # 打印响应报文内容
#     info(str(response.text))

在控制台输入mitmdump -s  xxx.py。 我运行的时候报了缺了好多个包,然后一个个用pip3下载下来了。

最后遇到一个比较棘手的还得需要vs工具,这里给你们个连接,可以自己下

https://blog.csdn.net/antizheng/article/details/88633912

然后运行就可以了,注意把之前开的mitmdump关掉。

这时候在控制台就能看到这些请求和响应了

然后写我们的下载代码,直接贴出来了

url_map = dict()
def request(flow):if flow.request.url.startswith("http://xxx"):r = requests.get(flow.request.url)if flow.request.url in url_map:returnurl_map[flow.request.url] = 1rand = random.randint(0, len(titles) - 1)t = time.time()title = str(titles[rand] + "{0}.mp4").format(int(t))with open(title, "wb") as mp4:for chunk in r.iter_content(chunk_size=1024 * 512):if chunk:mp4.write(chunk)

然后大功告成了就,好累。。。

抓取微信小程序数据加密内容相关推荐

  1. 【Charles基础】Charles抓取微信小程序乱码,抓取指定的请求

    问题: 在抓取微信小程序的接口时,会出现乱码的情况(抓取https) 解决方法: 1.点击 [工具栏-->Proxy-->SSL Proxying Settings...] 2.添加需求抓 ...

  2. 把jquery city-picker地区选择插件数据改成微信小程序省市地区数据一样(php代码抓取微信小程序地区数据)

    原版插件 https://github.com/tshi0912/city-picker 资源下载 https://download.csdn.net/download/jianye112/12036 ...

  3. Burpsuite 抓取微信小程序数据包

    Burpsuite 抓取微信小程序数据包 一.网上的方法 ① 手机导入CA证书,设置指定DNS,亲测无效 备注:此方法可抓取微信公众号的数据,但是无法抓取微信小程序的数据 ② 使用安卓模拟器,我下载的 ...

  4. 抓取微信小程序数据包的三种方法

    前言 做安全测试的都会遇到测试某微信小程序,而微信小程序基本都是基于HTTPS的,所以抓取HTTPS数据包就是最关键的一步.最近几天折腾了一下,整理了比较简单.方便的三种方法. 条件 抓取微信小程序数 ...

  5. MAC系统利用charles抓取微信小程序和手机APP数据包(http和https数据包)

    本文中使用的是mac上的抓包工具charles进行抓包,手机是华为荣耀8 下载并安装Charles for Mac Charles for Mac(HTTP信息抓包工具) V4.2.5 苹果电脑版 要 ...

  6. 渗透实战-抓取微信小程序流量包

    渗透实战-抓取微信小程序流量包 前言 Proxifier使用 启用HTTPProxy服务器 设置监听地址 设置代理规则 利用Proxifier抓取微信小程序 前言 现在渗透测试不仅要对传统的web测试 ...

  7. 抓取微信小程序源码教程,扒微信小程序文件等

    前言: 想成为一名微信小程序的开发者,前端思路的学习和安全意识是非常有必要的,故务必掌握小程序反编译技能.这里用到了2个工具<包解密>与<反编译>(非原创,均来自网上的大佬), ...

  8. 最新抓取微信小程序源码教程+附逆向工具WxappUnpacker

    正文: 文章目录 前言 一.工具准备(免费) 1 解密工具 2 逆向工具 二.解密小程序 1.确认小程序包位置 2.打开一个小程序 3.解密小程序包 三.逆向小程序 1.检查nodejs 2.安装依赖 ...

  9. 小程序素材抓取软件_如何抓取微信小程序的数据?

    2017年1月份备受关注的微信小程序功能正式上线了,好多知名平台纷纷推出了自己的微信小程序,例如大众点评.美团外卖.京东购物.对于我们爬虫开发者来说这绝对是好事情,意味着又多了一个数据来源,又多了一种 ...

  10. 如何抓取微信小程序的数据?

    2017年1月份备受关注的微信小程序功能正式上线了,好多知名平台纷纷推出了自己的微信小程序,例如大众点评.美团外卖.京东购物.对于我们爬虫开发者来说这绝对是好事情,意味着又多了一个数据来源,又多了一种 ...

最新文章

  1. 代码规范之华为公司代码规范
  2. 【深入Java虚拟机JVM 04】JVM内存溢出OutOfMemoryError异常实例
  3. gradle配置及使用教程、groovy入门示例
  4. php curl 下载图片,CURL实现下载远程图片并保存到本地
  5. 共轭方式怎么判断_怎样判断共轭双烯
  6. 武侠乂怎么修改服务器,武侠乂怎么操作 按键功能详细介绍
  7. linux svn 客户端安装配置
  8. 第二章、Linux操作系统及常用命令
  9. <EDEM 基础案例05>Screw Auger
  10. PTA数组后五道演讲比赛中有10个评委打分(实型数据,十分制分数)一维数组中,然后输入欲删除数x,最后删除数组中值为x的元素并输出,键盘输入一个4×4阶的矩阵,编程输出它的转置矩阵。
  11. 儿童神经系统肿瘤有哪些,儿童神经系统肿瘤症状
  12. AGA 2019电竞狂欢盛宴开启:为全国校园电竞玩家“圆梦”
  13. guitar pro8.1免费的吉他学习辅助软件
  14. 【MySQL】这是我见过最有用的MySQL数据类型面试题,面了无数家总结的
  15. js逆向--有道翻译
  16. 支付宝五福java_2021年集支付宝五福攻略 一个账号一天最少扫到10张+ 扫一轮下来 基本要啥福有啥福!...
  17. 脉诊在现代医学中的应用与局限性
  18. PythonCSV文件操作小结
  19. 明日之后服务器什么时候维护好,明日之后11月14日维护什么时候结束
  20. 红米G游戏本通用EFI黑苹果引导文件

热门文章

  1. 苹果6S怎么录屏_苹果6s来电没声音怎么回事
  2. LANP环境搭建(yum安装)
  3. 优雅编程之项目注意这些,你就“正常”了(十七)
  4. echarts画工作流(流程图)
  5. python输出矩阵_python输出矩阵
  6. 特征值+SVD分解+伪逆(广义逆)
  7. Science Advances:恐惧学习中内侧前额叶和杏仁核theta振荡同步活动
  8. 数据分析师面试题目_数据分析师面试题目
  9. python中每个if条件后面都要使用冒号_每个if条件后面都要使用冒号。
  10. UE4 4.13 VR FPS 继续优化