[C#/Python] AoB Scan(内存扫描)方式获取微信小程序Token/Cookies
🚀前言
之前羊了个羊大火的时候写了一个羊了个羊辅助--GitHub - SwaggyMacro/YangLeGeYang,可以免抓包一键获取Token。
后面随着热度退去也没有再更新,其中获取微信小程序Token的逻辑还在,只不过经过微信的更新原来的AoB Scan (Array of Bytes)方式已经失效,主要原因是微信小程序已经更新至x64,原有的AoB Scan仅支持扫描32 bit程序。
本文仅讲述原理以及实现方式并提供实现代码,具体项目实现请自行尝试。
通过本文实现的任何违法、犯罪等程序,本人概不负责,本文仅供技术探讨以及研究。
💻准备工作
mitmproxy抓包工具 (你要获取 Token / Cookies 总要先知道有什么吧)
- 官方下载地址: https://mitmproxy.org/
Cheat Engine(你总要知道该搜索什么内容吧 借助CE实现)
- 官方下载地址: Cheat Engine
- 顺带一提,似乎AoB Scan就是因为CE才有这个叫法的,具体我也不清楚,说错勿怪。
C#或Python总得会一个
- 本文将提供C# 与 Python代码,但你既然能在读这篇文章肯定多少会一个并且有这个需求。
- 对抓包以及CE多少需要了解一点点点点,如果继续往下看发现看不明白的话请你Google Or Bing/Baidu 搜索一下相关知识内容。
📖正文开始
- 双击打开
mitmweb.exe,如果8080或8081端口占用的话可以使用cmd指定端口运行。
--listen-port 8081指定8081端口

- 设置系统代理为
127.0.0.1:8080(端口为你指定的端口 8080是默认端口

- 从PC端微信搜索你要抓包的小程序,在这以
羊了个羊为例,打开游戏后可以发现mitmproxy的web页面出现了羊了个羊的数据加载,在其中找寻一下有用的请求,发现其中一个请求附带了t协议头,该协议头为羊了个羊的鉴权信息,本次就以获取该信息为例。

- 将这段信息进行base64解码可以发现在
"."前面的数据为数据说明字段,即算法为HS256,类型为JWT。那么也就是说这一段是固定的。

- 尝试在
Cheat Engine中搜索eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9


- 在搜索结果中出现了很多,先选择一部分到下方地址栏,然后右键选中下方任何一个地址->
Browse this memory region(浏览该内存区域)

- 之后在该内存区域我们可以完整的看到整个
token(鉴权信息),那说明直接搜索该字段(eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9)是可行的。)

- 在C#程序中填入进程名
(WechatAppEx 微信小程序进程名)、窗口标题(羊了个羊 羊了个羊窗口标题 避免遍历所有微信小程序进程耗时)、扫描内容(eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9),点击Scan可以发现在下方ListView中已经有了结果。

- 在Python代码中填入窗口标题
(羊了个羊)以及扫描内容(eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9)后运行即可,下方会输出搜索到的内容。

实际开发中可能不会这么顺利,以上只是例子,具体需要扫描的内容需要自己一步步去抓包以及CE扫描获取,最后再通过程序获取。
⚠️注意事项
- 使用
C#代码时因为是扫描64bit程序,所以请选择x64平台,另外需要以管理员身份运行。 - 使用
Python代码时请以管理员身份运行。
📚所需工具以及源代码
🌟源代码: Github项目地址 GitHub - SwaggyMacro/AoBScanExample (可以尝试留下Star 那么我会非常感谢你🌹)
⚒️Cheat Engine 官方: Cheat Engine
🔨mitmproxy 官方: https://mitmproxy.org/
🧰CE和mitmproxy整合包(无法访问官方网站可从以下链接下载)
- 百度网盘: https://pan.baidu.com/s/10WHtFxpELBqb8jj0i9O-1A?pwd=6666 提取码: 6666
- 蓝奏云: https://imacro.lanzoum.com/b02ez3w0h 密码:5epu
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Swaggy Macro
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果

