Advertisement
Guest User

Untitled

a guest
Nov 12th, 2016
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.85 KB | None | 0 0
  1. int main(int argc, char *argv[])
  2. {
  3.     DWORD dwImageSize = 0;
  4.     DWORD dwWritten = 0;
  5.     HANDLE hFile = NULL;
  6.     LPVOID pImage = FileToMem(argv[1], &dwImageSize);
  7.     LPVOID pStub = VirtualAlloc(NULL, stub_size + dwImageSize + 0x1000, MEM_COMMIT, PAGE_READWRITE);
  8.  
  9.     CopyMemory(pStub, stub, stub_size);
  10.     PIMAGE_DOS_HEADER dos = (PIMAGE_DOS_HEADER) pStub;
  11.     PIMAGE_NT_HEADERS nt = MakePtr(PIMAGE_NT_HEADERS, pStub, dos->e_lfanew);
  12.     PIMAGE_SECTION_HEADER text = IMAGE_FIRST_SECTION(nt);
  13.  
  14.     //CopyMemory(&pStub[text->PointerToRawData + text->Misc.VirtualSize], pImage, dwImageSize);
  15.     memcpy(&pStub[text->PointerToRawData], pImage, dwImageSize);
  16.  
  17.     hFile = CreateFile(TEXT("loader.exe"),
  18.         GENERIC_WRITE,
  19.         FILE_SHARE_READ,
  20.         NULL,
  21.         CREATE_ALWAYS,
  22.         FILE_ATTRIBUTE_NORMAL,
  23.         NULL);
  24.     if (hFile != NULL)
  25.     {
  26.         WriteFile(hFile, stub, stub_size, &dwWritten, NULL);
  27.     }
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement