чем можно подключить такую dll в игру unreal tournament 3 ? http://file.sampo.ru/ftrvv8/ инжектил вот таким - но не работает: http://file.sampo.ru/qvnsgz/
Я обычно dll side-loading'ом пользуюсь. Смотрю, какие системные дллы подгружаются, копирую подходящую (типа wsock32.dll, msvcrt71.dll, итд) в директорию жертвы, добавляю в эту длл код типа LoadLibrary("LibraryToInject.dll"); или подправляю таблицу импорта. Некоторые, как, например, wsock32.dll и msimg32.dll, вообще можно самому написать с всем необходимым кодом уже внутри.
Если почитать это: http://www.unrealadmin.org/forums/showthread.php?t=10950&highlight=opengl32 , то этот метод оказывается малопригодным. На сервере можно определить, какие дллы загружены в процесс и откуда. Значит надо пользоваться классикой жанра Code: #include <windows.h> #include <tlhelp32.h> #pragma comment(linker, "/NODEFAULTLIB /ENTRY:main /MERGE:.rdata=.text /SUBSYSTEM:WINDOWS") #define PROC_NAME "UT3.exe" #define LIB_NAME "winlibvr.dll" //////////////////////////////////////////////////////////////////////////////////////////////////////////// HANDLE getProcHandle(char* procName) { HANDLE h, hp = NULL; PROCESSENTRY32 pe; h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if(h != INVALID_HANDLE_VALUE) { pe.dwSize = sizeof(pe); if(Process32First(h, &pe)) { do { if(!lstrcmpi(pe.szExeFile, procName)) { hp = OpenProcess(PROCESS_ALL_ACCESS, 0, pe.th32ProcessID); break; } } while(Process32Next(h, &pe)); } CloseHandle(h); } return hp; } //////////////////////////////////////////////////////////////////////////////////////////////////////////// main() { HANDLE hp, ht; int tmp, ret = 0; char* mem; if((hp = getProcHandle(PROC_NAME))) { if((mem = VirtualAllocEx(hp, 0, 0x100, MEM_COMMIT, PAGE_READWRITE))) { if(WriteProcessMemory(hp, mem, LIB_NAME, sizeof(LIB_NAME), &tmp)) { if((ht = CreateRemoteThread(hp, 0, 0, (LPTHREAD_START_ROUTINE)LoadLibrary, mem, 0, 0))) { WaitForSingleObject(ht, INFINITE); GetExitCodeThread(ht, &ret); CloseHandle(ht); } } VirtualFreeEx(hp, mem, 0, MEM_RELEASE); } CloseHandle(hp); } if(ret) MessageBox(NULL, "Library loaded", "OK", 0); else MessageBox(NULL, "Library NOT loaded", NULL, 0); ExitProcess(0); } , назвать UT aimbot.dll малоприметном именем, изменить размер, добавить секцию ресурсов с версией файла и загружать из \system32 (\SysWOW64). А ещё лучше сделать из неё просто кусок кода, который загрузить и запустить с теми-же WriteProcessMemory() CreateRemoteThread().