修改內存地址,微信低版本登錄

微信低版本登錄,有一臺老的電腦用的版本是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;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容