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 就会出现图中下半部分。
在软件中我们可以找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"
然后我们在去关闭下这个句柄就可以了
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


猜你喜欢
- 这次我们讨论的是,区分有单选框的选项和普通的选项~~乍听起来,可能不太理解我说了什么,下面举个例子先~~1、标签的单选~~例如QQ秀的支付流
- 1. 从字典创建DataFrame>>> import pandas>>> dict_a = {'
- 继续分享pygame有趣的技术知识,欢迎往下看。一、先搭个架子(一)黏贴背景图:实现代码如下:import pygamepygame.ini
- 写在前面原计划继续写一篇Portia的使用博客,结果在编写代码途中发现,在windows7的DockerToolbox里面使用Portia错
- 是时候稍微总结一下前一段时间的PHP简单系统制作技巧了。 前一段时间主要讲述了如何用PHP读取与查询MySQL中的数据,并向大家着重解释了如
- 也不一定,以前从来没有深入的研究过sql查询,最近买了一本T-SQL查询的书,把以前忽视的问题都记录一下 以前一直模模糊糊的把sqlserv
- 0.先给大家看看效果:1.创建一个index.html文件<!DOCTYPE html><html lang="
- javascript:单行注释用//呵呵呵呵;多行注释用/*hdhdhdh*/javascript中区别大小写,定义变量使用关键字var,语
- 导语在大多数开发需求中,我们有时需要将某个数据,或者某个函数方法,挂载到,全局实例身上,以便于,在项目全局的任何位置都能够调用其方法,或读取
- session请求过程当第一次访问网站时,Seesion_start()函数就会创建一个唯一的Session ID,并自动通过HTTP的响应
- 前段时间自学了一段时间的Python,想着浓一点项目来练练手。看着大佬们一说就是爬了100W+的数据就非常的羡慕,不过对于我这种初学者来说,
- 本文来源于Element官方文档:http://element-cn.eleme.io/#/zh-CN/component/carousel
- 本文实例讲述了Python3爬虫学习之爬虫利器Beautiful Soup用法。分享给大家供大家参考,具体如下:爬虫利器Beautiful
- 做一个简单的小实例:目录结构如下:demo1.pyclass MyClass():def __init__(self,x,y):  
- 需求目标执行Python程序的时候在控制台输出内容的时候只显示一行,然后自动刷新内容,像这样:Downloading File FooFil
- 用javascript实现Base64编码—解决中文问题因javascript求出来的是Unicode要转换成Ansi后才能对它进行Base
- 使用sql的计划任务可以处理一些特殊环境的数据,除了使用windows系统的计划任务来定时处理,不过要配合程序才行,有些事情可以直接使用sq
- PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开
- 大家好,我是只谈技术不剪发的 Tony 老师。我们在开发 Oracle 数据库程序时,如果想要通过 PL/SQL 存储过程实现发送邮件的功能
- 效果:myvcode.class.php:封装创建验证码的类<?php/** file:myvcode.class.php* 验证码类