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**原版**下载地址
只是稍稍编辑了一下,竟然审核了一天。。以后有补充的直接回帖,不编辑了 xunqiudaka1 发表于 2023-3-7 17:08
大佬膜拜,有机会能不能帮我破解一下
如果是为此专门买一个账号没什么必要。。到时候我在别的平台发(标题和此贴标题相同),你直接在那下面留言就行了 本帖最后由 xingkongawa 于 2023-3-7 22:05 编辑
那应该不是一个单独的call... (自动保存图片)HOOK接收图片消息CALL,然后解密dat文件,思路大概就是这样过几天试试 前排支持一个, 希望继续出后面HOOK的教程 很好的技术贴,谢谢楼主分享! 期待后面的hook教程 大佬.我想知道自动下载图片的call怎么找{:301_997:} 那种免扫码登录怎么弄的啊