Показать сообщение отдельно
Старый 11.01.2016, 12:15   #37
Новичок
 
Регистрация: 11.01.2016
Сообщений: 2
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Botter100 пока неопределено
Печаль

Посоны привет! Я тут это все читаю, чето все всё перехватывают. А я понять не могу - это все делается на клиенте с откусанной темидой и ГГ или прям со всем этим добром? Я просто пытаюсь делать хук и у меня крэшится. Причем крэшится не доходя до моего кода, но и не сразу, а только там где я залез своми грязнуми руками в енжин.длл.

Моя первая цель - вызвать MessageBox при вызове OnNpcHtmlMessage

Вот тут хукаю

Код:
bool Entry()
{
	HMODULE hEngine = GetModuleHandle(L"Engine.dll");

	if (hEngine == INVALID_HANDLE_VALUE)
		MessageBox(HWND_DESKTOP, L"Can't get module handle.", L"Error", MB_OK | MB_ICONERROR);

	char* addr = (char*)GetProcAddress(hEngine, "?OnNpcHtmlMessage@UGameEngine@@UAEHPAUUser@@PA_WHH@Z");

	if (!addr)
		MessageBox(HWND_DESKTOP, L"Can't get proc address.", L"Error", MB_OK | MB_ICONERROR);

	DWORD protection;
	DWORD ff = (DWORD)UGameEngine__OnNpcHtmlMessage;

	Log::putstring(L"dump_UGameEngine__OnNpcHtmlMessage.txt", L"UGameEngine__OnNpcHtmlMessage = 0x%0X\n", ff);
	Log::putstring(L"dump_UGameEngine__OnNpcHtmlMessage.txt", L"UGameEngine::OnNpcHtmlMessage = 0x%0X\n", (DWORD)addr);

	//VirtualProtect(addr, 5, PAGE_EXECUTE_READWRITE, &protection);
	*addr = char(0xE9);	// op code
	memcpy(addr + 1, &ff, 4);
	//VirtualProtect(addr, 5, protection, 0);

	HANDLE hDumpFile = CreateFile(L"dump.txt", GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, 0, NULL);

	DWORD bytesWritten = 0;
	WriteFile(hDumpFile, addr, 200, &bytesWritten, NULL);
	CloseHandle(hDumpFile);


	MessageBox(HWND_DESKTOP, L"I am in...", L"Yop", MB_OK);

	return true;
}
тут я просто инжеклю jmp на мою функцию представленую ниже

Код:
__declspec(naked) void UGameEngine__OnNpcHtmlMessage()
{
	MessageBox(HWND_DESKTOP, L"Called 'UGameEngine__OnNpcHtmlMessage'", L"Yop", MB_OK);
}
Это все делается под геймгуардом и с темидой, не знаю влияет ли это как то. Просто бот л2тавер показывает что это возможно. Подсобите че не так делаю? Спасибо.
Botter100 вне форума   Ответить с цитированием