Всем доброго времени суток.
Прошу помощи.
Целью является вызов функций чужого процесса (из самого же процесса естественно)
При внедрении DLL с помощью CreateRemoteThread(код ниже) инъекция проходит успешно, но в подгруженных DLL ее нет (проверка Process Explorer ).
Сам код рабочий (куда попало инжектится )
DLL пустая - ничего не делает, создана через DillMain
bool Inject(DWORD pID, char* path) {
HANDLE proc_handle;
LPVOID RemoteString;
LPVOID LoadLibAddy;
if (pID == 0) {
return false;
}
proc_handle = OpenProcess(PROCESS_ALL_ACCESS, false, pID);
if (proc_handle == 0) {
return false;
}
RemoteString = VirtualAllocEx(proc_handle, NULL, strlen(path), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(proc_handle, RemoteString, path, strlen(path), NULL);
LoadLibAddy = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
CreateRemoteThread(proc_handle, NULL, NULL, (LPTHREAD_START_ROUTINE)LoadLibAddy, RemoteString, NULL, NULL);
CloseHandle(proc_handle);
return true;
}
При попытке отладки процесса через JIT - отказ в доступе.
ПО по типу Cheat Engine , сразу умирают в присутствии нужного процесса.
Подойдет любой совет, в какую сторону думать, что бы хоть как-то продвинуться в нужном направлении.