修改内存地址,微信低版本登录

微信低版本登录,有一台老的电脑用的版本是2.6.0.56,因为有聊天记录,并且电脑比较老,不打算升级新版本,但是老版本提示.


image.png

查资料https://www.52pojie.cn/forum.php?mod=viewthread&tid=1400757得知
微信版本号2.6.0.56在内存中用16进制通过算法表示为0x62060038,这个数字怎么来的呢?

其实就是几个数字异或计算,看下面

计算方式:0x60000000 ^ 版本号前3位16进制表示 ^ 末尾版本号16进制表示

前三位版本号2.6.0写作0x02060000
末尾版本号56十六进制写作0x38
0x60000000 ^ 0x02060000 ^ 0x38 = 0x62060038

2.6.0.56在内存中就是0x62060038
我们把需要一个新版本号3.9.10.27计算得0x63090A1B,如下

#3.9.10.27版本计算
0x60000000 ^ 0x03090A00 ^ 0x1B = 0x63090A1B

是不是还挺简单.

手动操作

打开微信二维码登录界面,然后打开ce加载weichat.exe的内存.
接下来在ce中搜索0x62060038这个值,把他修改为新版本的数值,就可以用修改后的新版本号登录了

勾选16进制,开始扫描


image.png

我们把wechatwin.dll作为偏移的地址保存到下面, 把这几个地址内存值得修改为3.9.10.27 版本计算出的16进制:63090A1B

image.png
image.png

修改完成后,扫码登录.

登录成功.

代码实现

思路
1.首选获取wechatwin.dll的内存地址
2.根据ce里面显示版本数值的那4个地址偏移,修改内存值

从上面ce中扫描得知微信版本号所在内存地址偏移
WeChatWin.dll+FC576C
WeChatWin.dll+FC9E08
WeChatWin.dll+FCA880
WeChatWin.dll+FD98F4

DWORD g_hModule = GetModuleHandle(_T("WeChatWin.dll"));
DWORD dwAddr = (DWORD)g_hModule + 0xFC576C;
DWORD *p = (DWORD*)dwAddr;
*p = 0x63090A1B;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容