Тема: Rguard interlude
Показать сообщение отдельно
Старый 05.04.2015, 23:50   #1
Новичок
 
Регистрация: 05.04.2015
Сообщений: 2
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
edawid пока неопределено
По умолчанию Rguard interlude

Hi, My friends i write in English because my Russian is very bad.
This is my First post but i need help i search response for my problem but anyone can give me good fix
This is a part of code form Rguard H5

Код:
unsigned int GetSendPacketAddress(void)
{
	HMODULE hEngine = LoadLibraryA("engine.dll");

	unsigned int startVMT = (unsigned int) hEngine + 0x51F658;
	unsigned int AddNetworkQueue = (unsigned int) GetProcAddress(hEngine, "?AddNetworkQueue@UNetworkHandler@@UAEHPAUNetworkPacket@@@Z");
	unsigned int currVMT = startVMT;

	if (AddNetworkQueue == 0)
	{
		return 0;
	}

	while (true)
	{
		if (*(unsigned int*) currVMT == AddNetworkQueue)
		{
			return *(unsigned int*) (currVMT - 0xA4);
		}

		currVMT++;
		if (currVMT - startVMT > 10000)
		{
			return 0;
		}
	}
	return 0;
}


I need fix only this part for interlude 746 protocol [EU]


Добавлено через 52 минуты
Fix like this is okey Ya ?
Код:
unsigned int GetSendPacketAddress(void)
{
	HMODULE hEngine = LoadLibraryA("engine.dll");
	unsigned int UNHandlerTable = (unsigned int)GetProcAddress(hEngine, "??_7UNetworkHandler@@6BUObject@@@");
	return (UNHandlerTable + 0x48) + 0x6C;
}

Последний раз редактировалось edawid, 05.04.2015 в 23:51. Причина: Добавлено сообщение
edawid вне форума   Ответить с цитированием