1. 背景
虽然人类都是喜新厌旧的,但也不是什么东西都是新的好。今天换了台服务器,发现正常使用微信,弹窗提醒说版本太低了,根本不给登录。没办法啊,机器人只兼容这个版本的,只能到处找解决方案了,没想到真找到了,也不能算找到了,多个文章不同思路启发了,最后综合了一下,完美解决!
2. 利用cheat Engine直接修改内存
cheat Engine是什么,自行搜索,或者可以问问GPT4
首先要安装cheat Engine,如果没有,下载链接如下:(PS:有评论说我这个版本有毒,还捆绑删不掉的广告软件,2024年7月10日23:38:35我又安装了一次,没有出现捆绑删不掉的情况,如果信不过可以自己网上找安装包下载。)
原版链接: https://pan.baidu.com/s/1Zne58GWU5xJMAkmCknn0AA?pwd=2r5c 提取码: 2r5c 复制这段内容后打开百度网盘手机App,操作更方便哦
(PPS:评论区的推荐,贴一个52破解汉化版)
52破解汉化版链接: https://pan.baidu.com/s/1xqnCr9jGeP6mKC3YH3jwkQ?pwd=hpbs 提取码: hpbs 复制这段内容后打开百度网盘手机App,操作更方便哦
- 先打开微信,不用登录,也登录不上
- 再打开cheat Engine,后续用CE代称
- CE加载微信,如图所示
- 认准图片的WeChat.exe,看图操作
- Hex记得打勾,值填要改的微信版本,就是打开提示低版本的这个版本,换算逻辑点这里:微信版本号转换,我的版本是3.8.0.33,转换过来就是63080021,把这个值填进Hex的值里,再点First Scan
- 点First Scan后,正常情况下,左边的列表会找到一些内容,最底下标绿色的就是根据上面的版本号找到的内存里对应的内容
- 把左边绿色的全部选中,右键,选第一项,加到最下面的地址列表里
- 对最下面的地址列表,每一项都进行修改,双击,在弹出的窗口里填,要伪装的微信版本号,比如我要伪装成3.9.10.27,通过:微信版本号转换,获得的值是63090a1b
- 这是修改后的样子,每一行的最后一列的值都改成了63090a1b,至此,就完成了对内存的实时修改,现在微信客户端会误以为当前的版本是3.9.10.27,就不会弹窗提醒说低版本不能使用了!
- 如图所示,大功告成!
3. 利用Python代码直接修改内存
利用CE虽然做到了伪装微信版本,但这个操作每一次登录微信都要来一次,太繁琐了,其实完全可以用代码来替代上面这个过程,代码写一次,以后每次都可以用,省时省力!直接贴代码!
from pymem import Pymem
def fix_version(pm: Pymem):
WeChatWindll_base = 0
for m in list(pm.list_modules()):
path = m.filename
if path.endswith("WeChatWin.dll"):
WeChatWindll_base = m.lpBaseOfDll
break
# 这些是CE找到的标绿的内存地址偏移量
ADDRS = [0x2BEE688, 0x2C0E7E8, 0x2C0E93C, 0x2C26AA8, 0x2C29BEC, 0x2C2B2F4]
for offset in ADDRS:
addr = WeChatWindll_base + offset
v = pm.read_uint(addr)
print(v)
if v == 0x63090a1b: # 是3.9.10.27,已经修复过了
continue
elif v != 0x63080021: # 不是 3.8.0.33 修复也没用,代码是hardcode的,只适配这一个版本
raise Exception("别修了,版本不对,修了也没啥用。")
pm.write_uint(addr, 0x63090a1b) # 改成要伪装的版本3.9.10.27,转换逻辑看链接
print("好了,可以扫码登录了")
if __name__ == "__main__":
try:
pm = Pymem("WeChat.exe")
fix_version(pm)
except Exception as e:
print(f"{e},请确认微信程序已经打开!")
把上面的代码保存为,fakeWechatVersion.py,记得先运行微信,等打开微信扫码窗口后,然后 python fakeWechatVersion.py,提示如图就ok了!
代码里需要修改的地方:
- ADDRS = [0x2BEE688, 0x2C0E7E8, 0x2C0E93C, 0x2C26AA8, 0x2C29BEC, 0x2C2B2F4]的内容,其实就是第一步CE里找到的标绿的内存地址,仔细对比一下,就是WeChatWin.dll+,后面的数字,一共6个,在前面加上0x,如下图所示
- if v == 0x63090a1b: 这个值是要修改的当前版本,转换逻辑看前面链接
- elif v != 0x63080021: 这个值是希望伪装成的版本,转换逻辑看前面链接
- pm.write_uint(addr, 0x63090a1b) 这个值是希望伪装成的版本,转换逻辑看前面链接
Python特别适合这种小工具的开发,大家也可以用自己习惯的编程语言,把Python代码发给GPT4,它就能瞬间转换成大家习惯的语言了~
over,enjoy!
如对您有帮助,感谢投喂!