- 如果能成功创建互斥体对象,则启动微信
- 如果不能创建互斥体:
- 如果找到对应窗口,则置顶之,自己退出
- 如果没有找到,则启动微信
if (CreateMutex() == SUCCESS) { 启动微信} else { if (FindWindow() == SUCCESS) { 将已有窗口置顶 } else { 启动微信 }}
【揭开电脑上登录多个微信的秘密】而直接使用脚本启动的多个进程,虽然操作系统内核层面保证了互斥体的唯一,但由于启动速度相差不大,相应的窗口还没有来得及创建出来,导致走入上面的第二个启动逻辑,从而可以启动多个实例 。小发现在分析的过程中,发现了一个有趣的事情:
在WeChatWin.dll中,上面的创建互斥体再上一级函数名字叫StartWaChat,也是作为导出函数被该DLL导出:
文章插图
这里不知道是故意还是不小心把微信的WeChat写成了WaChat,如果是笔误,这位程序员同学看到了赶紧偷偷去改一下吧 。
推荐阅读
- 抖音上买东西存在哪些官方途径 抖音买东西有没有保障
- 手机充电器一直插在插座上会耗电吗?看完文章终于懂了!
- 历史上刘禅是个什么人物 三国的刘禅真正历史是什么样
- 微信外挂功能强大但可能犯法!这个研发团伙就被上海警方抓了
- 汉族战斗力 汉族厉害吗
- 苹果在可穿戴设备上再获多项专利批准,剑指运动健康
- 华为汽车BU总裁王军首次参加行业峰会登上了谁的舞台?
- 世界上最小的乌龟有多大?
- 手部全息反射区
- 承满穴