fork download
  1. BOOL Inject(DWORD pid)
  2. {
  3. if (0 == pid)
  4. return FALSE;
  5.  
  6. HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
  7. if (NULL == hProcess)
  8. return FALSE;
  9.  
  10. PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(TEXT("Kernel32")), "LoadLibraryA");
  11. if (NULL == pfnThreadRtn)
  12. return FALSE;
  13.  
  14. LPVOID libname = VirtualAllocEx(hProcess, NULL, lstrlen(dllName), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
  15. if (NULL == libname)
  16. return FALSE;
  17.  
  18. BOOL written = WriteProcessMemory(hProcess, libname, dllName, lstrlen(dllName), NULL);
  19. if (FALSE == written)
  20. return FALSE;
  21. TCHAR buffer[128];
  22. ZeroMemory(buffer, 128);
  23. ReadProcessMemory(hProcess, libname, buffer, 128, NULL);
  24. MessageBox(NULL, buffer, TEXT("Info"), MB_OK);
  25.  
  26. HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)pfnThreadRtn, libname, 0, NULL);
  27. if (NULL == hThread)
  28. return FALSE;
  29.  
  30. CloseHandle(hProcess);
  31. return TRUE;
  32. }
  33.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.c:1:1: error: unknown type name 'BOOL'
 BOOL Inject(DWORD pid)
 ^
prog.c:1:13: error: unknown type name 'DWORD'
 BOOL Inject(DWORD pid)
             ^
stdout
Standard output is empty