API Hook PC微信防多开 – Crack_Me – 博客园

来源: API Hook PC微信防多开 – Crack_Me – 博客园

1.首先确定微信放多开是如何确定的,大多数程序的防多开都是使用互斥体来完成,所以就从创建互斥体的API开始下手(CreateMutexA/CreateMutexW)

image

可以看到创建互斥体的名称

image

一般程序在防多开zhong 都是判断判断互斥体的名称是否相同,所以我们做个实验来验证我们猜想的是否正确

(使用x32dbg直接修改内存效果一样)

image

修改值直接运行,并接着在打开一个微信,结果如下

image

,双开成果,说明我们的猜测是正确的,所以直接用apiHook,Hook CreateMutexW函数,修改chau纳入的第三个参数,就可以过掉微信防多开,dll代码如下

void HookApi()
{
//获取CreateMutexW函数地址
Addr = GetProcAddress(LoadLibraryA(“Kernel32.dll”), “CreateMutexW”);
//保存原始的指令
memcpy(OldOpcode, Addr, 5);
//计算跳转偏移
DWORD Offset = (DWORD)HookCreateMutexA – (DWORD)Addr – 5;

//组合新的Opcode
*(DWORD*)&JmpOpcode[1] = Offset;

}

HANDLE WINAPI HookCreateMutexA(
LPSECURITY_ATTRIBUTES lpMutexAttributes,
BOOL                  bInitialOwner,
LPCSTR                lpName
)
{
HANDLE Handle = 0;
//调用CreateMutexW创建不同名称的互斥体
Handle = CreateMutexW(lpMutexAttributes, bInitialOwner, L”bbbbbbbb23333333″);
return Handle;

}

void EnableHook(BOOL Enable = TRUE)
{
DWORD OldProtect = 0;
//修改内存页属性,可读写
VirtualProtect(Addr, 5, PAGE_EXECUTE_READWRITE, &OldProtect);
//填充新的Opcode
memcpy(Addr,Enable ? JmpOpcode:OldOpcode, 5);
//还原目标地址所在分页的属性
VirtualProtect(Addr, 5, OldProtect, &OldProtect);
}

本文来自网络,不代表Mikel立场,转载请注明出处:http://www.mikel.cn/%e5%bc%80%e5%8f%91%e7%ac%94%e8%ae%b0/c/api-hook-pc%e5%be%ae%e4%bf%a1%e9%98%b2%e5%a4%9a%e5%bc%80-crack_me-%e5%8d%9a%e5%ae%a2%e5%9b%ad.html
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部