关于Hook CreateMutex
我是个驱动新手,最近学习破解多开。经过一个通宵的百度和摸索,简单的多开kugou用以下代码可以了。
MyNtCreateMutant( OUT PHANDLE MutantHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN BOOLEAN InitialOwner ) { NTSTATUS nStatus; UNICODE_STRING DestinationString,DestinationString2; WCHAR WC_MyId; RtlInitUnicodeString(&DestinationString, L"Kugoo7"); //MSangoClientNew RtlInitUnicodeString(&DestinationString2, L"Kugou7MainFormMutex"); if (ObjectAttributes && RtlEqualUnicodeString(&DestinationString, ObjectAttributes->ObjectName, 0)) { KdPrint(("Kugoo7\n")); ULONG MyId = (ULONG)PsGetCurrentProcessId(); KdPrint(("PsGetCurrentProcessId = %u\r\n",MyId)); UNICODE_STRING UnicodeString2={0}; UnicodeString2.Buffer = (PWSTR)ExAllocatePool(PagedPool,1024); UnicodeString2.MaximumLength = 1024; nStatus = RtlIntegerToUnicodeString(MyId,10,&UnicodeString2); if ( NT_SUCCESS(nStatus)) { KdPrint(("转换字串成功! 结果:%wZ\n",&UnicodeString2)); RtlCopyUnicodeString(ObjectAttributes->ObjectName,&UnicodeString2); return g_pfnCreateMutant(MutantHandle,DesiredAccess,ObjectAttributes,InitialOwner); }else { KdPrint(("转换字串 失败!\n")); return STATUS_SUCCESS; } } return g_pfnCreateMutant(MutantHandle,DesiredAccess,ObjectAttributes,InitialOwner); }