QPC SpeedHack

Что это такое:

Хак, который использует подмену значений в QueryPerformanceCounter, вследствии чего можно ускорять, либо замедлять действия на клиенте.

 

Исполнение:

1) Необходим хук QueryPerformanceCounter. Там исполняем:

Code:
BOOL WINAPI MyQueryPerformanceCounter(LARGE_INTEGER *lp)
{
	static LONGLONG oldfake = 0;
	static LONGLONG oldreal = 0;

	LONGLONG newvalue;
	BOOL ret = (pQueryPerformanceCounter)(lp);

	if( oldfake == 0 || oldreal== 0 )
	{
		oldfake = lp->QuadPart;
		oldreal = lp->QuadPart;
	}

	// cvar.speed_manual - это значение прироста скорости, от 0.1, до 256
   // Значения менее 0 будут нас замедлять, большие - ускорять.
	double factor 	= (cvar.speed_manual<0.1 ? 1:cvar.speed_manual);

	newvalue = lp->QuadPart;
	newvalue = oldfake + (LONGLONG)((newvalue - oldreal) * factor);

	oldreal = lp->QuadPart;
	oldfake = newvalue;

	lp->QuadPart = newvalue;

	return ret;
}

 

2) Код из OGC, слегка доработан. Оригинальный автор неизвестен. Для более корректной работы спидхака необходимо устанавливать максимальное значение cl_timeout, иначе будет выкидывать с сервера с причиной - connection timeout.

Copyright (c) Troll

Hosted by uCoz