XCarthGetlin 发表于 2020-7-30 19:42

简单保证微信多实例

本帖最后由 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"就可以同时打开多个微信了:

大黑屋 发表于 2020-7-30 19:56

憨批大佬.,安卓微信 QQ有没有教程啊 我开太极了 双开APP不行 这个方法可以吗??????{:1_926:}

zcx1696273503 发表于 2020-7-31 16:27

既然你都找到只能开一个微信的原因了,那就不用这个麻烦了,只要在系统发出启动进程指令的时候立马启动另外一个,理论上就可以直接双开。也就是趁电脑没有反应过来再开一个
bat大概这样就好了,启动之后两个微信登录界面叠加在一起了,但是确实是两个
cd C:\Program Files (x86)\Tencent\WeChat(你微信的安装目录)
start WeChat.exe
start WeChat.exe

XCarthGetlin 发表于 2020-7-30 19:44

好像markdown的大标题有问题我去掉了{:1_907:}

XCarthGetlin 发表于 2020-7-30 20:17

大黑屋 发表于 2020-7-30 19:56
憨批大佬.,安卓微信 QQ有没有教程啊 我开太极了 双开APP不行 这个方法可以吗??????

不太懂啊{:1_896:}没试过。。。

大黑屋 发表于 2020-7-30 20:30

XCarthGetlin 发表于 2020-7-30 20:17
不太懂啊没试过。。。

{:1_937:}难怪了憨批大佬{:1_937:}

pcxys 发表于 2020-7-30 20:32

精品,赞一个,这下可以干微商啦。哈哈

Simple87 发表于 2020-7-30 20:39

学习一下 虽然看的有的懵逼

Deuez 发表于 2020-7-30 20:42

lu4421479 发表于 2020-7-30 20:46

支持!!

大黑屋 发表于 2020-7-30 20:50

Deuez 发表于 2020-7-30 20:42
可以双开了呀,新版太极支持双开了呀

我是小米8,直接用系统自带的进行双开。插件啥的也有功能

我是一加的会闪退
页: [1] 2 3 4 5 6
查看完整版本: 简单保证微信多实例