pc微信多开hook版本3.2.1.123


大佬勿喷,写给逆向微信新手看的

测试hook使用的软件:
Windows 10系统
vs2019
Cheat Engine7.2
Ollydbg 吾爱pj版本
微信版本:3.2.1.123

了解微信禁止多开原理

微信使用的是mutex 互斥
启动微信的时候会用CreateMutexW来创建互斥体,微信互斥体名字:_WeChat_App_Instance_Identity_Mutex_Name

用od设置断点找到互斥体名字地址,ce修改互斥体名字

1.用od打开微信,打开后不要运行。
2.搜索微信调用的CreateMutexW函数
od搜索函数
3.点击确定会跳转到这里,按下f2设置断点
在这里插入图片描述
4.用od运行程序
5.断下来之后检查这里,会发现微信互斥体名字(如果没有的话多点几下运行程序,还是没有就检查是不是断点设置错误了)
在这里插入图片描述
6.选中这个call,右键点击它,反汇编跟随
在这里插入图片描述
7.点击后会跳转到反汇编窗口,往上滑一点会找到微信互斥体名字
在这里插入图片描述
8.右键点击这个互斥体名字,数据窗口跟随,立即数
在这里插入图片描述
9.用ce搜索这个地址,修改里面的值
在这里插入图片描述
这个编码选上

修改里面的值
在这里插入图片描述
10.od取消之前设置的断点,点下运行程序
在这里插入图片描述
11.程序运行后,我们在再打开一下微信,会发现可以直接双开了。
在这里插入图片描述

实现多开思路

1.创建一个微信挂起进程
2.往微信挂起进程里面注入dll,修改互斥体名字
3.恢复进程

实现多开代码

dll

#include<windows.h>
#include <iostream> 
//获取模块基质
DWORD getdlljz() {

    HMODULE wxdll = LoadLibraryA("WeChatWin.dll");
    return (DWORD)wxdll;

}
VOID wxdk() {
    DWORD mkjz = getdlljz();
    //模块基质+互斥体偏移地址
    DWORD wxmz1 = mkjz + 0x188B2E8;
    //要修改的互斥体名字宽字符,如果要多开很多个微信请用随机宽字符
    //不用随机字符只能打开两个,一个dll注入打开,一个正常打开
    wchar_t wt[] = L"cnhdcjd";
    int addrvar = 0;
    addrvar = (int)&wt;

//修改内存页属性可读可写
    DWORD lpfOldProtect;
    BOOL ccc1 = VirtualProtectEx(GetCurrentProcess(), (LPVOID)wxmz1, sizeof(wt), PAGE_EXECUTE_READWRITE, &lpfOldProtect);
    if (ccc1 == 0)
    {
        MessageBox(NULL, "修改失败", "Title(标题)", MB_OK);
    }
    //修改互斥体名字
    BOOL ccc = WriteProcessMemory(GetCurrentProcess(), (LPVOID)wxmz1, wt, sizeof(wt), NULL);
    if (ccc1 == 0)
    {
        MessageBox(NULL, "修改失败1", "Title(标题)", MB_OK);
    }
}

挂起程序和注入dll的就不写了,网上有很多

qq2244357123


版权声明:本文为qq_36608560原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。