揰掵佲 发表于 2021-3-24 12:56

微信低版本的分析

本帖最后由 揰掵佲 于 2021-3-24 13:00 编辑


#微信过低版本分析
##1.微信是如何计算版本号的
      微信的显示的版本取决于WeChatWin.dll文件.
      获取文件信息GetFileVersionInfoSizeW->GetFileVersionInfoW->VerQueryValueW
      打开OD 拖入WeChat.exe
      对GetFileVersionInfoSizeW函数下断
      一直F9直到发现有 WeChatWin.dll的路径出现
      005CE9C4   5C517F09/CALL 到 GetFileVersionInfoSizeW 来自 WeChatWi.5C517F03
      005CE9C8   00B031C0|FileName = "G:\xxxxxx\WeChat\WeChatWin.dll"
      005CE9CC   005CEA00\pHandle = 005CEA00

      
      
      返回到WeChatWi.5C517F03
5C517E80         /$55            PUSH EBP
5C517E81         |.8BEC          MOV EBP, ESP
5C517E83         |.A1 987D405D   MOV EAX, DWORD PTR DS:
5C517E88         |.83EC 2C       SUB ESP, 0x2C
5C517E8B         |.53            PUSH EBX
5C517E8C         |.56            PUSH ESI
5C517E8D         |.57            PUSH EDI
5C517E8E         |.85C0          TEST EAX, EAX
5C517E90         |.75 2B         JNZ SHORT 5C517EBD
5C517E92         |.68 04010000   PUSH 0x104                               ; /BufSize = 104 (260.)
5C517E97         |.68 B8C6415D   PUSH 5D41C6B8                            ; |PathBuffer = WeChatWi.5D41C6B8
5C517E9C         |.50            PUSH EAX                                 ; |hModule = 00B031C0
5C517E9D         |.FF15 4C22055D CALL DWORD PTR DS:[<&KERNEL32.GetModuleF>; \GetModuleFileNameW
5C517EA3         |.68 B8C6415D   PUSH 5D41C6B8                            ; /Path = "G:\xxxxxx\WeChat"
5C517EA8         |.FF15 6C26055D CALL DWORD PTR DS:[<&SHLWAPI.PathRemoveF>; \PathRemoveFileSpecW
5C517EAE         |.C705 987D405D>MOV DWORD PTR DS:, 5D41C6B8;UNICODE "G:\xxxxxx\WeChat"
5C517EB8         |.B8 B8C6415D   MOV EAX, 5D41C6B8                        ;UNICODE "G:\xxxxxx\WeChat"
5C517EBD         |>6A FF         PUSH -0x1
5C517EBF         |.0F57C0      XORPS XMM0, XMM0
5C517EC2         |.C745 E8 00000>MOV , 0x0
5C517EC9         |.50            PUSH EAX
5C517ECA         |.8D4D D8       LEA ECX,
5C517ECD         |.0F1145 D8   MOVUPS DQWORD PTR SS:, XMM0
5C517ED1         |.E8 3AC9FFFF   CALL 5C514810
5C517ED6         |.68 C44F215D   PUSH 5D214FC4                            ;UNICODE "\WeChatWin.dll"
5C517EDB         |.8D4D D8       LEA ECX,
5C517EDE         |.E8 ADCAFFFF   CALL 5C514990
5C517EE3         |.8B75 D8       MOV ESI,
5C517EE6         |.C745 F8 00000>MOV , 0x0
5C517EED         |.85F6          TEST ESI, ESI
5C517EEF         |.74 08         JE SHORT 5C517EF9
5C517EF1         |.66:833E 00    CMP WORD PTR DS:, 0x0
5C517EF5         |.8BC6          MOV EAX, ESI
5C517EF7         |.75 05         JNZ SHORT 5C517EFE
5C517EF9         |>B8 10D3165D   MOV EAX, 5D16D310
5C517EFE         |>8D4D F8       LEA ECX,
5C517F01         |.51            PUSH ECX                                 ; /pHandle = 005CEA00
5C517F02         |.50            PUSH EAX                                 ; |FileName = "G:\xxxxxx\WeChat\WeChatWin.dll"
5C517F03         |.FF15 7429055D CALL DWORD PTR DS:[<&VERSION.GetFileVers>; \GetFileVersionInfoSizeW
5C517F09         |.8BD8          MOV EBX, EAX
5C517F0B         |.C745 EC 00000>MOV , 0x0
5C517F12         |.C745 F0 00000>MOV , 0x0
5C517F19         |.8D0C5D 020000>LEA ECX, DWORD PTR DS:
5C517F20         |.51            PUSH ECX
5C517F21         |.8D4D EC       LEA ECX,
5C517F24         |.E8 07AEFFFF   CALL 5C512D30
5C517F29         |.85F6          TEST ESI, ESI
5C517F2B         |.74 08         JE SHORT 5C517F35
5C517F2D         |.66:833E 00    CMP WORD PTR DS:, 0x0
5C517F31         |.8BC6          MOV EAX, ESI
5C517F33         |.75 05         JNZ SHORT 5C517F3A
5C517F35         |>B8 10D3165D   MOV EAX, 5D16D310
5C517F3A         |>8B7D EC       MOV EDI,                      ;WeChatWi.5D406B00
5C517F3D         |.57            PUSH EDI                                 ; /Buffer = 0000035D
5C517F3E         |.53            PUSH EBX                                 ; |BufSize = 5D1 (1489.)
5C517F3F         |.6A 00         PUSH 0x0                                 ; |Reserved = 0x0
5C517F41         |.50            PUSH EAX                                 ; |FileName = "G:\xxxxxx\WeChat\WeChatWin.dll"
5C517F42         |.FF15 7029055D CALL DWORD PTR DS:[<&VERSION.GetFileVers>; \GetFileVersionInfoW
5C517F48         |.85C0          TEST EAX, EAX
5C517F4A         |.74 2F         JE SHORT 5C517F7B
5C517F4C         |.8D45 F4       LEA EAX,
5C517F4F         |.C745 F4 00000>MOV , 0x0
5C517F56         |.50            PUSH EAX                                 ; /pValueSize = 00B031C0
5C517F57         |.8D45 FC       LEA EAX,                      ; |
5C517F5A         |.C745 FC 00000>MOV , 0x0                     ; |
5C517F61         |.50            PUSH EAX                                 ; |ppValue = 00B031C0
5C517F62         |.68 E801175D   PUSH 5D1701E8                            ; |pSubBlock = "\"
5C517F67         |.57            PUSH EDI                                 ; |pBlock = 0000035D
5C517F68         |.FF15 6C29055D CALL DWORD PTR DS:[<&VERSION.VerQueryVal>; \VerQueryValueW
5C517F6E         |.8B45 FC       MOV EAX,
5C517F71         |.85C0          TEST EAX, EAX
5C517F73         |.74 06         JE SHORT 5C517F7B
5C517F75         |.0FB758 0C   MOVZX EBX, WORD PTR DS:
5C517F79         |.EB 02         JMP SHORT 5C517F7D
5C517F7B         |>33DB          XOR EBX, EBX
5C517F7D         |>85FF          TEST EDI, EDI
5C517F7F         |.74 09         JE SHORT 5C517F8A
5C517F81         |.57            PUSH EDI
5C517F82         |.E8 B42CA400   CALL 5CF5AC3B
5C517F87         |.83C4 04       ADD ESP, 0x4
5C517F8A         |>85F6          TEST ESI, ESI
5C517F8C         |.74 09         JE SHORT 5C517F97
5C517F8E         |.56            PUSH ESI
5C517F8F         |.E8 A72CA400   CALL 5CF5AC3B
5C517F94         |.83C4 04       ADD ESP, 0x4
5C517F97         |>8B45 E4       MOV EAX,
5C517F9A         |.85C0          TEST EAX, EAX
5C517F9C         |.74 09         JE SHORT 5C517FA7
5C517F9E         |.50            PUSH EAX
5C517F9F         |.E8 972CA400   CALL 5CF5AC3B
5C517FA4         |.83C4 04       ADD ESP, 0x4
5C517FA7         |>5F            POP EDI                                  ;WeChatWi.5C517F09
5C517FA8         |.5E            POP ESI                                  ;WeChatWi.5C517F09
5C517FA9         |.8BC3          MOV EAX, EBX
5C517FAB         |.5B            POP EBX                                  ;WeChatWi.5C517F09
5C517FAC         |.8BE5          MOV ESP, EBP
5C517FAE         |.5D            POP EBP                                  ;WeChatWi.5C517F09
5C517FAF         \.C3            RETN

retn下断
等结果 看eax 0x58=88,我们用的是2.7.1.88 刚好是尾数

EAX 00000058
ECX 00AE0000
EDX 00AE0000
EBX 000005D1
ESP 005CEA0C UNICODE "医尊"
EBP 005CEA1C
ESI 5D053D00 WeChatWi.5D053D00
EDI 0000035D
EIP 5C517FAF WeChatWi.5C517FAF
C 0ES 002B 32 位 0(FFFFFFFF)
P 1CS 0023 32 位 0(FFFFFFFF)
A 0SS 002B 32 位 0(FFFFFFFF)
Z 1DS 002B 32 位 0(FFFFFFFF)
S 0FS 0053 32 位 96D000(FFF)
T 0GS 002B 32 位 0(FFFFFFFF)
D 0
O 0LastErr ERROR_SUCCESS (00000000)
EFL 00000246 (NO,NB,E,BE,NS,PE,GE,LE)
ST0 empty 0.0
ST1 empty 0.0
ST2 empty 0.0
ST3 empty 0.0
ST4 empty 0.0
ST5 empty 1.0000000000000000000
ST6 empty 1.0000000000000000000
ST7 empty 1.0000000000000000000
               3 2 1 0      E S P U O Z D I
FST 4000Cond 1 0 0 0Err 0 0 0 0 0 0 0 0(EQ)
FCW 027FPrec NEAR,53Mask    1 1 1 1 1 1


F8下一步看到如下代码


5C0A91AB         |.0FB6C0      MOVZX EAX, AL
5C0A91AE         |.0D 00010762   OR EAX, 0x62070100
5C0A91B3         |>A3 B885405D   MOV DWORD PTR DS:, EAX
5C0A91B8         |>A3 68F5405D   MOV DWORD PTR DS:, EAX
5C0A91BD         |.8BE5          MOV ESP, EBP
5C0A91BF         |.5D            POP EBP
5C0A91C0         \.C3            RETN



取得到的版本号和0x62070100位或得到结果0x62070158

分别赋值给 0x5D4085B8 和 0x5D40F568 这2个肯定是读取的.先记录一下

0x62070100是怎么来的呢,从代码看,很像是固定的.

2.7.1.00=> 转换一下0x02070100
0x62070100 => 0x60000000+0x02070100
我们来计算1个,假如版本号是 3.3.3.33
0x03030300+0x60000000=0x63030300 or 0x21 => 0x63030321
修改eax的值 0x63030321
F9放行
原来是
后面确实改成功了

版本的算法 可以自己编写出来

##2.如何过掉低版本
    重新运行微信 打开CE 附加搜索 0x62070158 版本号计算的结果
   
    写入最新的版本 或者更高版本即可

我写入的是 3.3.3.33
点击登陆即可





djxding 发表于 2021-3-24 13:43

邪恶海盗 发表于 2021-3-24 13:00
球球是咋整的,有的号登陆提示版本低

微信提示版本低,不能登录时,还要更简单的处理方式:
二步就OK啦。
1、用微信高版本登录,让微信记住 本设备信息。
2、再卸载高版本,重新安装低版本,然后登录就OK啦。

注意:只能用一个微信号登录。

haowb 发表于 2021-3-24 16:42

本帖最后由 haowb 于 2021-3-24 16:43 编辑

浩男8866 发表于 2021-3-24 15:54
大侠们有双开微信的PC版没
首先在电脑桌面找到已安装好的微信图标。


接着右键点击该图标,在弹出的右键菜单中选择“属性”菜单项。


在打开的微信属性窗口中,我们可以看到“目标”一项,把文本框中的内容全部复制下来。


接下来在桌面的空白位置点击右键,依次点击“新建/文本文档”菜单项。


在打开的新建文本文档窗口中,输入start C:\"Program Files (x86)"\Tencent\WeChat\WeChat.exe,需要注意编辑修改的英文状态的双引号,同时想要同时打开几个微信,就复制几行。


接下来依次点击“文件/另存为”菜单项。


在弹出的另存为窗口中,我们点击下面的“保存类型”下拉按钮,在弹出菜单中选择“所有文件”菜单项。


然后设置好文件名,需要注意文件名的后缀要为.bat,不然文件无法自动运行哦。


在桌面上找到刚刚保存好的.bat文件,然后双击运行该文件。


这时就可以看到同时打开的多个微信的登录主界面了,在这里依次输入账号与密码登录即可。

lcg2014 发表于 2021-3-25 10:30

狗日马化腾要银行卡号才能用微信

音乐萌新 发表于 2021-3-24 13:37

看不懂哈哈哈{:301_1001:}

邪恶海盗 发表于 2021-3-24 13:00

球球是咋整的,有的号登陆提示版本低

红蓝黄 发表于 2021-3-24 13:02

感谢分析

xQQ 发表于 2021-3-24 13:09

这是微信什么版本呀?

kl0 发表于 2021-3-24 13:13

关键是改了后系统会不会封号?

longggggg_2000 发表于 2021-3-24 13:19

感觉挺厉害,但改这个是做什么用的?

李现在哪 发表于 2021-3-24 13:35

会被微信发现吗

不知火龙果 发表于 2021-3-24 13:40

我就想知道楼主上面发现以及修改等操作都运用到了什么知识?小白需要学习什么才能达到楼主那样的水平?
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 微信低版本的分析