Перейти к содержанию

Cheat Engine. Поиск указателей без бейкпоинтов


pachela

Рекомендуемые сообщения

23 минуты назад, pachela сказал:

Что это за секция?  "xxxxxxxxxxxx????xxxx"

Маска сигнатуры. x - значит байт который не изменяется, ? - который может поменяться.

23 минуты назад, pachela сказал:

Далее, что это за опкод char OpCode[] = "\xDB\x45"? Зачем он нужен?

Это ты нашел исходники для MidHookFunction который меняет инструкции типа как AA скрипт в CE. Подгружаешь длл она делает хук, который прыгает в твою длл меняет инструкцию и обратно в игру прыжок. 

23 минуты назад, pachela сказал:

WriteToMemory(aAddy, OpCode, 4); что значит цифра 4?

4 количество байт подменяемой инструкции.

WriteToMemory это трамплин.

 

23 минуты назад, pachela сказал:

что отступ от найденной сигнатуры aAddy += 5

Отступ найденной инструкции, до той которую надо изменять.

 

Пример использования, когда-то баловался с L4D2 в этими хуками.

Скрытый текст

__declspec(naked) void RegAmmo()
{
	__asm 
	{

	mov AmmoRegister , esi
    mov [esi + 0x1414],eax
	jmp [AmmoJMPBack]

	}

}

void MIDHook()
{
DWORD ammo = FindPattern("server.dll", "\x89\xBE\x00\x00\x00\x00\x8B\x06\x8B\x90\x00\x00\x00\x00\x8B\xBE\x00\x00\x00\x00" ,"xx????xxxx????xx????");
ammo += 11;
AmmoJMPBack = ammo + 0x6; // количество байт заменяемых инструкций
PlaceJMP((BYTE*)ammo, (DWORD)RegAmmo, 0x6);
}

DWORD WINAPI ChangeVal()
{
	for (;;Sleep(150))
	{
		if (GetAsyncKeyState(VK_MENU))
		{
			DWORD idkptr = AmmoRegister + 0x1414;
			*(int*)idkptr += 1;
		}
	}
	return 0;
}

BOOL WINAPI DllMain(
	HINSTANCE hInstDll,
	DWORD dwReason,
	LPVOID lpReserved)
{
	switch (dwReason)
	{
	case DLL_PROCESS_ATTACH:
	MIDHook();
	CreateThread(0,0,(LPTHREAD_START_ROUTINE)ChangeVal,0,0,0);
	break;
	}
	return true;
}

 

 

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

ТС, пожалуйста, не надо использовать готовый код, ничего в нем не понимая и пытаясь что-то поменять. Найди на форуме пару видеоуроков (от меня или от Coder-а) по созданию такого сканера - там хотя бы объясняется, как он работает. Более того, код, который ты привел - это не C++, но тут я уже скорее придираюсь.

Ссылка на комментарий
Поделиться на другие сайты

14 минуты назад, keng сказал:

ТС, пожалуйста, не надо использовать готовый код, ничего в нем не понимая и пытаясь что-то поменять. Найди на форуме пару видеоуроков (от меня или от Coder-а) по созданию такого сканера - там хотя бы объясняется, как он работает. Более того, код, который ты привел - это не C++, но тут я уже скорее придираюсь.

Уроки то я посмотреть посмотрю, некоторые уже видел. Понимать, я от части понимаю, но не все. А по поводу того, что это не С++, почему придираешься? Найден код на буржуйском сайте в разделе С++ исходников. Да и язык похож на тот, который я сейчас учу, возможно это С, но не ++?

П.с. Времени в обрез, если не сложно, можно ссылку на видеоуроки именно по этой теме?

Ссылка на комментарий
Поделиться на другие сайты

58 minutes ago, pachela said:

Уроки то я посмотреть посмотрю, некоторые уже видел. Понимать, я от части понимаю, но не все. А по поводу того, что это не С++, почему придираешься? Найден код на буржуйском сайте в разделе С++ исходников. Да и язык похож на тот, который я сейчас учу, возможно это С, но не ++?

П.с. Времени в обрез, если не сложно, можно ссылку на видеоуроки именно по этой теме?

[Держи]. Там C#, но язык особой роли не играет. По поводу предоставленного тобой исходника - все верно, это куда скорее чистый Си. А вопросы не нужно бояться задавать. Мы тут на форуме не поболтать собираемся - поболтать можно и с коллегами, на работе.

Ссылка на комментарий
Поделиться на другие сайты

9 часов назад, keng сказал:

ТС, пожалуйста, не надо использовать готовый код, ничего в нем не понимая и пытаясь что-то поменять. Найди на форуме пару видеоуроков (от меня или от Coder-а) по созданию такого сканера - там хотя бы объясняется, как он работает. Более того, код, который ты привел - это не C++, но тут я уже скорее придираюсь.

Чой этт? У меня тоже такой урок есть ))))

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.