首页
社区
课程
招聘
[原创] 企业微信 - 白日梦之获取登录二维码
发表于: 2天前 306

[原创] 企业微信 - 白日梦之获取登录二维码

2天前
306

本文深入研究企业微信登录二维码的获取技术,提供多种实现方案,包括逆向工程、文件监控和窗口截图等方法。

二维码登录是一种安全便捷的身份验证方式,其基本流程如下:

企业微信二维码登录流程图

临时密钥生成:客户端向服务端请求获取登录的临时密钥

二维码生成:将密钥拼接成URL格式,生成二维码图像

状态轮询:客户端持续询问二维码登录状态

移动端扫描:用户使用移动端扫描二维码并解析内容

授权确认:移动端通过解析的数据向服务端发送授权请求

状态更新:服务端更改临时密钥状态为已授权

登录完成:客户端检测到授权状态后完成登录

通过流程分析,我们可以得出以下关键信息:

二维码本质:二维码实际上是包含临时密钥的文本信息(URL + 密钥参数)

密钥来源:临时密钥通过网络请求从服务端动态生成

二维码的展示:二维码会作为图片展示到窗口给用户扫描使用

基于上述分析,本文提供三种主要的技术实现方案:

逆向工程方案基于以下思路:

二维码内容本质上是文本信息(URL + 密钥参数)

通过内存搜索定位密钥存储位置

使用调试器分析密钥生成和更新过程

步骤1:二维码内容解析

首先通过在线二维码识别工具解析二维码中的原始内容:

二维码内容解析示例

解析结果通常包含:

基础URL

临时密钥(key参数)

其他验证参数

步骤2:内存搜索定位

使用Cheat Engine等内存编辑工具搜索密钥字符串:

Cheat Engine内存搜索界面

⚠️ 注意事项

初次搜索可能返回多个结果

通过刷新二维码来筛选有效地址

建议重复操作2-3次以减少干扰

内存搜索结果筛选

二维码密钥定位

步骤3:基址定位与断点设置

使用指针扫描器定位基址,或通过硬件访问断点分析:

参考资料:看雪论坛 - 登录二维码基址查找方法

指针扫描器基址定位

步骤4:调试器分析

使用x32dbg等调试器进行动态分析:

对目标内存地址设置硬件写入断点

触发二维码更新操作

观察断点触发时的执行流程

x32dbg调试器分析界面

步骤5:函数回溯分析

通过堆栈回溯分析上层调用函数:

堆栈回溯分析

定位到二维码处理函数后,可以进一步分析:

二维码处理函数分析

文件监控方案基于一个重要发现:企业微信在生成二维码时会将图像文件保存到特定目录。

关键特征

存储路径:%USERPROFILE%\Documents\WXWork\Global\Image

文件格式:UUID格式的JPG文件(如:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.jpg

生成时机:每次刷新二维码时创建新文件

企业微信二维码文件存储目录

策略1:实时监控

使用文件系统监控API

实时检测新文件创建

自动识别二维码内容

企业微信实时监控策略

实时监控策略代码地址

策略2:定时扫描

定期扫描目录

获取最新修改的文件

适用于批量处理场景

企业微信定时扫描策略

定时扫描策略代码地址


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

最后于 1天前 被NSky99编辑 ,原因:
收藏
免费 12
支持
分享
最新回复 (8)
雪    币: 4
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
感谢分享
1天前
0
雪    币: 135
活跃值: (2626)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
666
1天前
0
雪    币: 27
活跃值: (364)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢分享
1天前
0
雪    币: 7831
活跃值: (5267)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢分享
1天前
0
雪    币: 152
活跃值: (1263)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
tql
1天前
1
雪    币: 1116
活跃值: (1146)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
666
11小时前
0
雪    币: 3356
活跃值: (2887)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
感谢分享
10小时前
0
雪    币: 1855
活跃值: (3713)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
666
26分钟前
0
游客
登录 | 注册 方可回帖
返回