Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main(int argc, char *argv[])
- {
- DWORD dwImageSize = 0;
- DWORD dwWritten = 0;
- HANDLE hFile = NULL;
- LPVOID pImage = FileToMem(argv[1], &dwImageSize);
- LPVOID pStub = VirtualAlloc(NULL, stub_size + dwImageSize + 0x1000, MEM_COMMIT, PAGE_READWRITE);
- CopyMemory(pStub, stub, stub_size);
- PIMAGE_DOS_HEADER dos = (PIMAGE_DOS_HEADER) pStub;
- PIMAGE_NT_HEADERS nt = MakePtr(PIMAGE_NT_HEADERS, pStub, dos->e_lfanew);
- PIMAGE_SECTION_HEADER text = IMAGE_FIRST_SECTION(nt);
- //CopyMemory(&pStub[text->PointerToRawData + text->Misc.VirtualSize], pImage, dwImageSize);
- memcpy(&pStub[text->PointerToRawData], pImage, dwImageSize);
- hFile = CreateFile(TEXT("loader.exe"),
- GENERIC_WRITE,
- FILE_SHARE_READ,
- NULL,
- CREATE_ALWAYS,
- FILE_ATTRIBUTE_NORMAL,
- NULL);
- if (hFile != NULL)
- {
- WriteFile(hFile, stub, stub_size, &dwWritten, NULL);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement