python分析实现微信钉钉等软件多开分身

作者:落伍的码农 时间:2023-07-22 18:37:12 

目前很多软件都限制单实例,大多数软件都是用Mutex来实现的 而这个东西咱们可以用handle去干掉它,并且不影响使用。 钉钉也是一样的步骤 不过Mutex的名字不一样 我测试的钉钉的是:

”\Sessions\1\BaseNamedObjects\{{239B7D43-86D5-4E5C-ADE6-CEC42155B475}}DingTalk“

这里要借助微软的两个软件 分别是:procexp handle

接下来开始正文:

首先咱们要手动判断下Mutex是哪个。

这就要用到procexp.exe了 以管理员身份运行该程序。

选中微信进程 按Ctrl+L 就会出现图中下半部分。

python分析实现微信钉钉等软件多开分身

在软件中我们可以找type 是Mutant 的 然后右键有个关闭 一个一个试 这里我已经试过了就不演示了 直接给大家

name \Sessions\1\BaseNamedObjects\WeChat_GlobalConfig_Multi_Process_Mutex

到这一步之后 这个工具的使命就完成了!接下来该使用handle了 在cmd 输入下面的代码


handle -a -u -p 12668 "\Sessions\1\BaseNamedObjects\WeChat_GlobalConfig_Multi_Process_Mutex"

python分析实现微信钉钉等软件多开分身

然后我们在去关闭下这个句柄就可以了


handle -p 12668 -c 460 -y

注意:这句代码需要管理员权限

然后我们再去打开微信就可以了。

下面我们用python去实现下

代码可能和分析不太一样 因为

"\Sessions\1\BaseNamedObjects\WeChat_GlobalConfig_Multi_Process_Mutex"

中的1 有时候会变成其他数字,所以我用了匹配规则

把代码和handle.exe 放在一个目录下


import os
import re
import psutil

def get_pid(name):
   """
   获取所有的微信进程
   """
   process_list = psutil.pids()
   pids = []
   for pid in process_list:
       if psutil.Process(pid).name() == name:
           pids.append(pid)
   return pids

def more_open(path):
   pids = get_pid("WeChat.exe")
   for pid in pids:
       #遍历所有微信的pid 把 Mutex都干掉
       cmd = f"handle -a -u -p {pid}"
       with os.popen(cmd) as f:
           result = f.read()
       search_result = ""
       for i in result.split("\n"):
           if i.strip():
               if i.strip().endswith("_WeChat_App_Instance_Identity_Mutex_Name"):
                   search_result += i
       if not search_result:
           os.startfile(path)
           continue
       re_result = re.findall('(\d+): Mutant', search_result, re.S)
       #上面这个循环是匹配 Mutex的handle
       if re_result:
           for _id in re_result:
               os.system(f'handle -p {pid} -c {_id} -y')
           os.startfile(path)

path = "D:\Program Files (x86)\Tencent\WeChat\WeChat.exe"
more_open(path)

来源:https://blog.csdn.net/Python_shannian/article/details/122896889

标签:python,微信,钉钉,多开
0
投稿

猜你喜欢

  • 如何在Unix系统环境下安装MySQL数据库

    2009-01-04 13:09:00
  • Java连接MySQL数据库增删改查的通用方法(推荐)

    2024-01-22 12:00:36
  • 使用 Python 实现简单的 switch/case 语句的方法

    2021-02-02 09:10:16
  • vue实现移动端图片裁剪上传功能

    2024-05-10 14:15:04
  • 详解MySQL是如何解决幻读的

    2024-01-14 02:17:19
  • 使用Vue自定义指令实现Select组件

    2024-05-09 15:26:41
  • python实现五子棋算法

    2022-12-22 18:53:15
  • Python requests上传文件实现步骤

    2023-09-25 15:14:50
  • Python常用图像形态学操作详解

    2023-07-27 18:14:51
  • 通过python-pptx模块操作ppt文件的方法

    2022-07-20 09:41:33
  • html注释所引起的一系列问题

    2008-11-04 13:23:00
  • python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现

    2023-07-25 16:29:47
  • Vue状态管理库Pinia详细介绍

    2024-05-09 15:11:43
  • python通过函数名调用函数的几种方法总结

    2021-03-22 03:40:35
  • 初学者必读:经典的数据库记录分页代码

    2009-01-08 15:27:00
  • Python+unittest+requests+excel实现接口自动化测试框架

    2021-09-08 07:04:49
  • Python 照片人物背景替换的实现方法

    2021-10-21 08:45:02
  • python基础知识小结之集合

    2021-07-14 23:34:54
  • Python实现随机生成算术题的示例代码

    2022-03-30 09:49:38
  • 详解Vue组件之间的数据通信实例

    2024-06-05 09:20:15
  • asp之家 网络编程 m.aspxhome.com