Как запустить dll записанную побайтово в чужой процесс?
В общем у меня цель такова: В exe файле,в массиве хранится зашифрованная dll. Ее надо в процессе расшифрования записать в память целевого процесса. До этого момента у меня все получается. Но к сожалению запустить из памяти целевого процесса не получается.
P.S. Это нужно для того чтоб у пользователя не было рабочей dll,и чтоб она при присоединении к процессу не хранилась на диске,и даже не в памяти exe в котором хранилась. Я нашел способ,только как запускать выполнение dll из памяти процесса в этот же процесс.Но это не то что нужно.
P.S..
unsigned char DllData[169984] = {
0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,0x00,....}
int main()
{
Inject2(procPID, DllData, sizeof(DllData));
}
int Inject2(DWORD pID, unsigned char rawData[],size_t sizeData)
{
HANDLE proc_handle = OpenProcess(PROCESS_ALL_ACCESS, false, pID);
LPVOID pThreadRoutine = (LPVOID)VirtualAllocEx(proc_handle, NULL, sizeData,MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
if (WriteProcessMemory(proc_handle, (LPVOID)pThreadRoutine, rawData,sizeData, NULL) == 0)return -3;
//if (CreateRemoteThread(proc_handle, NULL, NULL, (LPTHREAD_START_ROUTINE)pThreadRoutine,NULL, NULL, NULL) == 0)return -4;
//Как запустить уже из памяти этот код я не знаю,CreateRemoteThread не работает...
CloseHandle(proc_handle);
return 1;
}
P.S.S. Дело в том,что у меня есть exe,который должен запуститься,заинжектить код и выключиться,а код который он заинжектил должен все еще работать,но не должен храниться на диске