hotfix for win7
This commit is contained in:
parent
ef36cb9274
commit
b903d77730
@ -200,7 +200,8 @@ IHFSERVICE bool IHFAPI InjectProcessById(DWORD processId, DWORD timeout)
|
|||||||
IHFSERVICE bool IHFAPI DetachProcessById(DWORD processId)
|
IHFSERVICE bool IHFAPI DetachProcessById(DWORD processId)
|
||||||
{
|
{
|
||||||
DWORD command = HOST_COMMAND_DETACH;
|
DWORD command = HOST_COMMAND_DETACH;
|
||||||
return WriteFile(man->GetCommandPipe(processId), &command, sizeof(command), nullptr, nullptr);
|
DWORD unused;
|
||||||
|
return WriteFile(man->GetCommandPipe(processId), &command, sizeof(command), &unused, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
IHFSERVICE void IHFAPI GetHostHookManager(HookManager** hookman)
|
IHFSERVICE void IHFAPI GetHostHookManager(HookManager** hookman)
|
||||||
@ -230,7 +231,8 @@ IHFSERVICE DWORD IHFAPI InsertHook(DWORD pid, const HookParam *hp, std::string n
|
|||||||
memcpy(buffer + 4, hp, sizeof(HookParam));
|
memcpy(buffer + 4, hp, sizeof(HookParam));
|
||||||
if (name.size()) strcpy((char*)buffer + 4 + sizeof(HookParam), name.c_str());
|
if (name.size()) strcpy((char*)buffer + 4 + sizeof(HookParam), name.c_str());
|
||||||
|
|
||||||
WriteFile(commandPipe, buffer, 4 + sizeof(HookParam) + name.size(), nullptr, nullptr);
|
DWORD unused;
|
||||||
|
WriteFile(commandPipe, buffer, 4 + sizeof(HookParam) + name.size(), &unused, nullptr);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -245,7 +247,8 @@ IHFSERVICE DWORD IHFAPI RemoveHook(DWORD pid, DWORD addr)
|
|||||||
*(DWORD*)buffer = HOST_COMMAND_REMOVE_HOOK;
|
*(DWORD*)buffer = HOST_COMMAND_REMOVE_HOOK;
|
||||||
*(DWORD*)(buffer + 4) = addr;
|
*(DWORD*)(buffer + 4) = addr;
|
||||||
|
|
||||||
WriteFile(commandPipe, buffer, 8, nullptr, nullptr);
|
DWORD unused;
|
||||||
|
WriteFile(commandPipe, buffer, 8, &unused, nullptr);
|
||||||
WaitForSingleObject(hookRemovalEvent, 1000);
|
WaitForSingleObject(hookRemovalEvent, 1000);
|
||||||
CloseHandle(hookRemovalEvent);
|
CloseHandle(hookRemovalEvent);
|
||||||
man->RemoveSingleHook(pid, addr);
|
man->RemoveSingleHook(pid, addr);
|
||||||
|
@ -477,10 +477,10 @@ DWORD TextHook::UnsafeSend(DWORD dwDataBase, DWORD dwRetn)
|
|||||||
*((DWORD *)pbData + 1) = dwRetn;
|
*((DWORD *)pbData + 1) = dwRetn;
|
||||||
*((DWORD *)pbData + 2) = dwSplit;
|
*((DWORD *)pbData + 2) = dwSplit;
|
||||||
if (dwCount) {
|
if (dwCount) {
|
||||||
IO_STATUS_BLOCK ios = {};
|
DWORD unused;
|
||||||
|
|
||||||
//CliLockPipe();
|
//CliLockPipe();
|
||||||
WriteFile(::hookPipe, pbData, dwCount + HEADER_SIZE, nullptr, nullptr);
|
WriteFile(::hookPipe, pbData, dwCount + HEADER_SIZE, &unused, nullptr);
|
||||||
//CliUnlockPipe();
|
//CliUnlockPipe();
|
||||||
}
|
}
|
||||||
if (pbData != pbSmallBuff)
|
if (pbData != pbSmallBuff)
|
||||||
|
@ -43,7 +43,7 @@ DWORD WINAPI PipeManager(LPVOID unused)
|
|||||||
}
|
}
|
||||||
|
|
||||||
*(DWORD*)buffer = GetCurrentProcessId();
|
*(DWORD*)buffer = GetCurrentProcessId();
|
||||||
WriteFile(::hookPipe, buffer, sizeof(DWORD), nullptr, nullptr);
|
WriteFile(::hookPipe, buffer, sizeof(DWORD), &count, nullptr);
|
||||||
|
|
||||||
for (int i = 0, count = 0; count < ::currentHook; i++)
|
for (int i = 0, count = 0; count < ::currentHook; i++)
|
||||||
{
|
{
|
||||||
@ -131,7 +131,8 @@ void ConsoleOutput(LPCSTR text)
|
|||||||
*(DWORD*)buffer = HOST_NOTIFICATION; //cmd
|
*(DWORD*)buffer = HOST_NOTIFICATION; //cmd
|
||||||
*(DWORD*)(buffer + 4) = HOST_NOTIFICATION_TEXT; //console
|
*(DWORD*)(buffer + 4) = HOST_NOTIFICATION_TEXT; //console
|
||||||
memcpy(buffer + 8, text, textSize);
|
memcpy(buffer + 8, text, textSize);
|
||||||
WriteFile(::hookPipe, buffer, dataSize, nullptr, nullptr);
|
DWORD unused;
|
||||||
|
WriteFile(::hookPipe, buffer, dataSize, &unused, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Artikash 7/3/2018: TODO: Finish using this in vnrhost instead of section to deliver hook name
|
// Artikash 7/3/2018: TODO: Finish using this in vnrhost instead of section to deliver hook name
|
||||||
@ -146,7 +147,8 @@ void NotifyHookInsert(HookParam hp, LPCSTR name)
|
|||||||
*(DWORD*)(buffer + 4) = HOST_NOTIFICATION_NEWHOOK;
|
*(DWORD*)(buffer + 4) = HOST_NOTIFICATION_NEWHOOK;
|
||||||
*(HookParam*)(buffer + 8) = hp;
|
*(HookParam*)(buffer + 8) = hp;
|
||||||
strcpy((char*)buffer + 8 + sizeof(HookParam), name);
|
strcpy((char*)buffer + 8 + sizeof(HookParam), name);
|
||||||
WriteFile(::hookPipe, buffer, strlen(name) + 8 + sizeof(HookParam), nullptr, nullptr);
|
DWORD unused;
|
||||||
|
WriteFile(::hookPipe, buffer, strlen(name) + 8 + sizeof(HookParam), &unused, nullptr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user