简单保证微信多实例
本帖最后由 XCarthGetlin 于 2020-7-30 19:44 编辑微信只能运行一个实在有点繁琐,所以简单爆破一下。
## 分析关键函数
一般控制软件只运行单个实例会使用找进程名称(FindWindow),设置互斥量(CreateMutex)之类的函数,具体的在《加密与解密》中都有详细介绍了,这里就不赘述。
微信没加壳,直接IDA看WinMain函数,刚开始是一段查询系统版本以及检查程序更新的函数:
在往后就可以找到关键的函数,可以看到微信整体打开是调用WeChatWin.dll中的`StartWachat`函数的:
由于在Wechat.exe程序中没有找到有效的控制单个程序实例的函数,所以再看看WeChatWin.dll中的导入函数,可以看到导入了`CreateMutexW`函数以及`FindWindow`函数:
查看`CreateMutexW`函数上下文可以判断这个应该就是控制程序单个实例的关键函数:
而调用`FindWindowW`函数的上下文就更加明显了:
使用OD载入程序,在`CreateMutexW`下断点,触断后单步看。
设置的锁即控制单个实例的锁:
根据OD中最后1.5个字节"715"可以判断出这里的调用`CreateMutexW`就是上面的控制单个实例锁:
继续走找到一个大跳:
跳过的内容实则为判断有没有打开了微信的窗口:
若打开了微信则跳转到该窗口,否则就函数返回进入微信启动的主要流程:
## 爆破
找到关键函数,那么其实思路就很多了,比如将这个确保单实例的函数nop掉,又或者将互斥量的地方nop掉,这里我改了一个字节,将大跳的`je`指令改为`jmp`指令,这样的情况就是当有两个互斥量时,本会走入下面的if判断,这里直接就`jmp`到退出确保单实例函数的地方,并进入微信开启的流程:
导出DLL,名字改为"WeChatWin.dll"就可以同时打开多个微信了:
憨批大佬.,安卓微信 QQ有没有教程啊 我开太极了 双开APP不行 这个方法可以吗??????{:1_926:} 既然你都找到只能开一个微信的原因了,那就不用这个麻烦了,只要在系统发出启动进程指令的时候立马启动另外一个,理论上就可以直接双开。也就是趁电脑没有反应过来再开一个
bat大概这样就好了,启动之后两个微信登录界面叠加在一起了,但是确实是两个
cd C:\Program Files (x86)\Tencent\WeChat(你微信的安装目录)
start WeChat.exe
start WeChat.exe 好像markdown的大标题有问题我去掉了{:1_907:} 大黑屋 发表于 2020-7-30 19:56
憨批大佬.,安卓微信 QQ有没有教程啊 我开太极了 双开APP不行 这个方法可以吗??????
不太懂啊{:1_896:}没试过。。。 XCarthGetlin 发表于 2020-7-30 20:17
不太懂啊没试过。。。
{:1_937:}难怪了憨批大佬{:1_937:} 精品,赞一个,这下可以干微商啦。哈哈 学习一下 虽然看的有的懵逼 支持!! Deuez 发表于 2020-7-30 20:42
可以双开了呀,新版太极支持双开了呀
我是小米8,直接用系统自带的进行双开。插件啥的也有功能
我是一加的会闪退