先看看效果
一个程序,如果想做单例,无非就是遍历进程,mutex
微信这里使用的就是mutex 互斥
微信启动的时候 会调用
CreateMutexW 来创建一个互斥句柄
具体的代码如下
CreateMutexW(0, FALSE, L"_WeChat_App_Instance_Identity_Mutex_Name"); ;
想要做**这个也挺简单的
我这里做的是打开微信的时候,注入我自己的DLL,通过修改(_WeChat_App_Instance_Identity_Mutex_Name)来做到多开
具体操作也不难
OD打开微信
Ctrl + G 输入 CreateMutexW
然后点击OK按钮
OD会跳到
我们在这里按F2 下一个断点 然后点击运行程序
程序会执行到这里之后 断下来 我们看堆栈窗口
左键点击它一下 然后按回车键 跳到调用这个的call
到这里,我们就可以看到
_WeChat_App_Instance_Identity_Mutex_Name
是由
7A84A285 68 A8A0557B push WeChatWi.7B55A0A8 ; _WeChat_App_Instance_Identity_Mutex_Name
压入到栈堆的
我们记录下这里 然后回到模块 插件WeChatWin.dll 这个模块的基址
我们算下偏移
算法:
地址 - 模块基址 = 偏移量
0x7A84A285 - 0x79EE0000 = 0x96A285
到了这里 我们就拿到了我们要注入修改的地址的偏移值
然后,我们打开VS 新建一个DLL
然后键入代码
使用也简单
新建一个exe 调用CreateProcess
CreateProcess("微信目录", NULL, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &si, &pi)
创建一个挂机的微信进程
然后通过注入吧 把这个DLL 注入到微信
然后恢复挂起进程,就大功告成了,支持无限多开
打开就是这么写
如果有不懂的,也可以加我QQ: 3195774121