xingkongawa 发表于 2023-3-4 15:38

PCVX逆向全解:登录二维码分析与获取

本帖最后由 xingkongawa 于 2023-3-5 07:23 编辑

# PCVX逆向全解:登录二维码分析与获取

## 前言

尝试了各种教程,基本都是只适用于`2.X`版本的VX

经过两个小时的含辛茹苦地研究,研究出一种适用于`3.X`的登录二维码的分析思路

## 环境

1.`PCVX:3.9.0.28`(理论`3.X`通用思路,`3.9.0.28`测试通过)

2.`CE`

3.`x32dbg`或者`OD`

4.`WinHex`(可选)

**避坑注解:建议使用`OD`,`x32dbg`可能会出现VX莫名其妙退出的问题**

## 基础知识(大佬可直接跳过)

VX的登录二维码在内存内是以`png`形式存储的

让我们先看一下`png`的文件格式

![](https://s2.xptou.com/2023/03/04/6402e335d1634.png)

**避坑注解:新版本是指向?png,而非IHDR**

~~因此一直找不到二维码地址,后来才发现被他人的教程误导了~~

## 寻找二维码图片指针

打开VX,CE附加VX

搜索字节数组`89 50 4E 47`

![](https://s2.xptou.com/2023/03/04/6402e60d8f932.png)

**2023/3/5注:此处步骤标注错误,应先点击新的扫描再输入`89 50 4E 47`**
将除了绿色地址的所有地址添加到地址列表

(由于隔得时间比较久了,二维码可能刷新了,我这边重新扫描了一次)

![](https://s2.xptou.com/2023/03/04/6402e69bd21d4.png)

搜索第一个地址,如图:

![](https://s2.xptou.com/2023/03/04/6402e71e81990.png)

(如果没找到或者**只有**绿色的地址,则用地址栏内第二个地址尝试搜索,直到找到**不是绿色**的地址)

PS:此处可能扫描到多个地址,随意选择一个即可

## 寻找CALL

打开OD,附加VX,在搜到的指针处下断

![](https://s2.xptou.com/2023/03/04/6402e8a07dc95.png)

用手机扫描VX二维码,点击取消登录,观察是否断下

**此时VX极容易崩溃。。。崩溃了只好重试了**

若未断下,就只能从头重新尝试了...

此处我是未断下,重新尝试...

***

经过一段时间的尝试,成功断下

断下的地方像这样:

![](https://s2.xptou.com/2023/03/04/6402eae066d85.png)

断下后删除内存断点,在断下的地址下断

继续运行VX,重新扫码,取消登录

断下后查看堆栈窗口![](https://s2.xptou.com/2023/03/04/6402ecb37761a.png)

选中后`Enter`进入

![](https://s2.xptou.com/2023/03/04/6402ed38b96f8.png)

来到像这样的内存

显而易见,是调用了这个`call`才导致该指针发生改变

`call`处下断,取消原断点

![](https://s2.xptou.com/2023/03/04/6402edc34144f.png)

`F8`跟进到`retn`

![](https://s2.xptou.com/2023/03/04/6402ee26c16b9.png)

`retn`后来到如图所示内存,继续F8

![](https://s2.xptou.com/2023/03/04/6402eed61c45a.png)

`retn`后来到如图所示内存,在疑似关键CALL上下断,删除原断点

结构就像这样:

````assembly
7965BCEA    8B75 14         mov esi,dword ptr ss:
7965BCED    BA 288A4E7B   mov edx,WeChatWi.7B4E8A28                ; ASCII "LoginWnd::eventProc"
7965BCF2    56            push esi
7965BCF3    68 81020000   push 0x281
7965BCF8    B9 0C844E7B   mov ecx,WeChatWi.7B4E840C                ; ASCII "LoginWnd"
7965BCFD    E8 2EA92500   call WeChatWi.798B6630
7965BD02    83C4 08         add esp,0x8
7965BD05    84C0            test al,al
7965BD07    0F85 51110000   jnz WeChatWi.7965CE5E
7965BD0D    FF76 34         push dword ptr ds:
7965BD10    8D4D 0C         lea ecx,dword ptr ss:
7965BD13    FF76 30         push dword ptr ds:
7965BD16    E8 A5494400   call WeChatWi.79AA06C0
7965BD1B    8D45 0C         lea eax,dword ptr ss:
7965BD1E    C745 FC 0000000>mov dword ptr ss:,0x0
7965BD25    8B4F 38         mov ecx,dword ptr ds:
7965BD28    50            push eax
7965BD29    E8 32E2EFFF   call WeChatWi.79559F60                   ; 疑似关键CALL
7965BD2E    8B4F 28         mov ecx,dword ptr ds:
7965BD31    6A 01         push 0x1
7965BD33    6A 00         push 0x0
7965BD35    E8 8EE71F01   call WeChatWi.7A85A4C8
````

![](https://s2.xptou.com/2023/03/04/6402efda52079.png)

断下后`F8`一下(让他调用完`CALL`)

右键`EAX`,点击数据窗口中跟随

![](https://s2.xptou.com/2023/03/04/6402f023d988b.png)

如果你看到了类似这个样子的结构,那么恭喜你找到登录二维码的`CALL`了

本篇文章到此结束,如果反响不错,我会出一篇代码HOOK的教程 :P

又:附上本版本VX**原版**下载地址

xingkongawa 发表于 2023-3-5 21:56

只是稍稍编辑了一下,竟然审核了一天。。以后有补充的直接回帖,不编辑了

xingkongawa 发表于 2023-3-7 21:26

xunqiudaka1 发表于 2023-3-7 17:08
大佬膜拜,有机会能不能帮我破解一下

如果是为此专门买一个账号没什么必要。。到时候我在别的平台发(标题和此贴标题相同),你直接在那下面留言就行了

xingkongawa 发表于 2023-3-7 21:24

本帖最后由 xingkongawa 于 2023-3-7 22:05 编辑

那应该不是一个单独的call... (自动保存图片)HOOK接收图片消息CALL,然后解密dat文件,思路大概就是这样过几天试试

hackerxj 发表于 2023-3-4 23:08

前排支持一个, 希望继续出后面HOOK的教程

dengyy 发表于 2023-3-4 23:14

zjh889 发表于 2023-3-5 00:13

很好的技术贴,谢谢楼主分享!

shenapex 发表于 2023-3-5 00:38

weikechi626 发表于 2023-3-5 00:48

skoa 发表于 2023-3-5 03:13

期待后面的hook教程

Jvin 发表于 2023-3-6 10:35

大佬.我想知道自动下载图片的call怎么找{:301_997:}

天空の幻像 发表于 2023-3-6 11:23

那种免扫码登录怎么弄的啊
页: [1] 2 3
查看完整版本: PCVX逆向全解:登录二维码分析与获取