partoftheworlD Опубликовано 4 октября, 2016 Поделиться Опубликовано 4 октября, 2016 (изменено) 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; } Изменено 4 октября, 2016 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 4 октября, 2016 Поделиться Опубликовано 4 октября, 2016 ТС, пожалуйста, не надо использовать готовый код, ничего в нем не понимая и пытаясь что-то поменять. Найди на форуме пару видеоуроков (от меня или от Coder-а) по созданию такого сканера - там хотя бы объясняется, как он работает. Более того, код, который ты привел - это не C++, но тут я уже скорее придираюсь. Ссылка на комментарий Поделиться на другие сайты Поделиться
pachela Опубликовано 4 октября, 2016 Автор Поделиться Опубликовано 4 октября, 2016 14 минуты назад, keng сказал: ТС, пожалуйста, не надо использовать готовый код, ничего в нем не понимая и пытаясь что-то поменять. Найди на форуме пару видеоуроков (от меня или от Coder-а) по созданию такого сканера - там хотя бы объясняется, как он работает. Более того, код, который ты привел - это не C++, но тут я уже скорее придираюсь. Уроки то я посмотреть посмотрю, некоторые уже видел. Понимать, я от части понимаю, но не все. А по поводу того, что это не С++, почему придираешься? Найден код на буржуйском сайте в разделе С++ исходников. Да и язык похож на тот, который я сейчас учу, возможно это С, но не ++? П.с. Времени в обрез, если не сложно, можно ссылку на видеоуроки именно по этой теме? Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 4 октября, 2016 Поделиться Опубликовано 4 октября, 2016 58 minutes ago, pachela said: Уроки то я посмотреть посмотрю, некоторые уже видел. Понимать, я от части понимаю, но не все. А по поводу того, что это не С++, почему придираешься? Найден код на буржуйском сайте в разделе С++ исходников. Да и язык похож на тот, который я сейчас учу, возможно это С, но не ++? П.с. Времени в обрез, если не сложно, можно ссылку на видеоуроки именно по этой теме? [Держи]. Там C#, но язык особой роли не играет. По поводу предоставленного тобой исходника - все верно, это куда скорее чистый Си. А вопросы не нужно бояться задавать. Мы тут на форуме не поболтать собираемся - поболтать можно и с коллегами, на работе. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 5 октября, 2016 Поделиться Опубликовано 5 октября, 2016 9 часов назад, keng сказал: ТС, пожалуйста, не надо использовать готовый код, ничего в нем не понимая и пытаясь что-то поменять. Найди на форуме пару видеоуроков (от меня или от Coder-а) по созданию такого сканера - там хотя бы объясняется, как он работает. Более того, код, который ты привел - это не C++, но тут я уже скорее придираюсь. Чой этт? У меня тоже такой урок есть )))) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения