TitanHide icon indicating copy to clipboard operation
TitanHide copied to clipboard

VMProtect 3.9.1 latest Anti-Debug Patch

Open miketestz opened this issue 4 months ago • 1 comments

From the latest version of VMP (3.9.1), debugging verification for TitanHide has been enhanced!

It calls the NtOpenFile function to check if the \\.\TitanHide DOS name exists (this part has not been patched separately). Additionally, it performs more checks using the NtQueryInformationProcess function with the ProcessDebugObjectHandle class.

I have tried implementing part of the debugging checks performed by VMProtect.

HANDLE hProcess = GetCurrentProcess();
HANDLE debugObjectHandle = nullptr;
SIZE_T Value = 1000;

BYTE fakeBuffer[10] = { 0, };

status = NtQueryInformationProcess(hProcess, (PROCESSINFOCLASS)ProcessDebugObjectHandle, fakeBuffer+1, sizeof(debugObjectHandle), nullptr); //<-- Since TitanHide does not filter this process, the debugger is detected!

if (status != STATUS_DATATYPE_MISALIGNMENT)
{
	return true;
}

VMProtect intentionally sets the buffer address so that calling the function returns STATUS_DATATYPE_MISALIGNMENT. However, because TitanHide returns STATUS_PORT_NOT_SET, it gets detected.

miketestz avatar Oct 21 '24 02:10 miketestz