Собстенно нужна инфа по способам внедрения дллки в процесс
немного в готовом покопалсо, но чёта не особо продуктивно
ОС: Win
Lang: ASM и C++
скажем вот
Код
typedef struct
{
BYTE PushOpc; // 0x68 = push (dword)
DWORD PushAddr; // address of dll name
BYTE CallOpc; // 0xE8 = call (dword)
DWORD CallAddr; // address of LoadLibraryAPI
BYTE RetOpc; // 0xC2 = ret (word)
WORD RetValue; // return number
char LibPath[MAX_PATH]; // path of the dll to load
} sLibLoadCodeNT;
lstrcpy(LibLoadCode.LibPath,szLibraryPath);
// init the LibLoadCode struct
LibLoadCode.PushOpc = 0x68;
LibLoadCode.CallOpc = 0xE8;
LibLoadCode.CallAddr = (DWORD)GetProcAddress(GetModuleHandle("kernel32.dll"),"LoadLibraryA") - dwCodeStart - offsetof(sLibLoadCodeNT, RetOpc);
LibLoadCode.PushAddr = dwCodeStart + offsetof(sLibLoadCodeNT, LibPath);
LibLoadCode.RetOpc = 0xC2;
LibLoadCode.RetValue = 0x0004;
это вроде как формируется код для вызова длл?
WriteProcessMemory(pProcInfo->hProcess,(VOID*)dwCodeStart,&LibLoadCode,sizeof(LibLoadCode),&dwBytesWritten);
а здесь пишется кудато... и дальше запускается отельным потоком
CreateRemoteThread(pProcInfo->hProcess,NULL,0,(_CodeEntry)dwCodeStart,NULL,0,&dwRemoteThreadID);