微信多开源码 android,微信(WeChat)电脑端多开分析+源码

这篇博客介绍了如何使用C++通过系统信息查询获取微信进程的句柄,并进行对象名和类型名的查询。重点在于找到特定类型的句柄(如'Mutant'类型),特别是与微信实例标识相关的句柄,然后进行复制和关闭操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[C++] 纯文本查看 复制代码//步骤1和2的代码

//获取到微信所有进程句柄

DWORD Num = GetProcIds(L"WeChat.exe", Pids);

...

Status = ZwQuerySystemInformation(SystemHandleInformation, pbuffer, 0x1000, &dwSize);

PSYSTEM_HANDLE_INFORMATION1 pHandleInfo = (PSYSTEM_HANDLE_INFORMATION1)pbuffer;

for(nIndex = 0; nIndex < pHandleInfo->NumberOfHandles; nIndex++)

{

//句柄在Pids中,就是微信进程的句柄信息

if(IsTargetPid(pHandleInfo->Handles[nIndex].UniqueProcessId, Pids, Num))

{

HANDLE hHandle = DuplicateHandleEx(pHandleInfo->Handles[nIndex].UniqueProcessId,

(HANDLE)pHandleInfo->Handles[nIndex].HandleValue,

DUPLICATE_SAME_ACCESS

);

//对象名

Status = NtQueryObject(hHandle, ObjectNameInformation, szName, 512, &dwFlags);

//对象类型名

Status = NtQueryObject(hHandle, ObjectTypeInformation, szType, 128, &dwFlags);

//找到微信的标志

if (0 == wcscmp(TypName, L"Mutant"))

{

if (wcsstr(Name, L"_WeChat_App_Instance_Identity_Mutex_Name"))

{

//DUPLICATE_CLOSE_SOURCE标志很重要,不明白的查一查

hHandle = DuplicateHandleEx(pHandleInfo->Handles[nIndex].UniqueProcessId,

(HANDLE)pHandleInfo->Handles[nIndex].HandleValue,

DUPLICATE_CLOSE_SOURCE

);

if(hHandle)

{

printf("+ Patch wechat success!\n");

CloseHandle(hHandle);

}

}

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值