BITS 64 main: ; Replacement entry point push rbp mov rbp, rsp sub rsp, 10h + 90h call GetKernel32ModuleHandle mov [rbp - 8h], rax ; kernel32.dll mov rcx, rax call GetAddressOf_GetProcAddress mov [rbp - 10h], rax ; *GetProcAddress mov rcx, [rbp - 8h] ; kernel32.dll lea rdx, [rel s_LoadLibraryA] mov rax, [rbp - 10h] ; *GetProcAddress call rax ; rax = *LoadLibraryA lea rcx, [rel dllPath] call rax ; LoadLibraryA(dllPath) add rsp, 10h + 90h pop rbp ret %include "gpa.asm" ; Strings s_LoadLibraryA: db "LoadLibraryA", 0 dllPath: ; This will be filled out by the injector ; Path to the dll to inject into the launcher