dll ручного сопоставления никогда не выполняет мою функцию MessageBoxA - PullRequest
0 голосов
/ 11 июля 2020
• 1000 1002 * Проблема в том, что я пытался отладить его в течение нескольких часов, и я не могу найти проблему, и я предполагаю, что это из моего шелл-кода, но я хотел бы знать, что-то не так с этим или нет.

Кроме того, после отладки шелл-код фактически переходит на адрес моей точки входа в DLL и выполняется, но никогда не вызывает MessageBoxA и приводит к сбою всей программы после завершения выполнения моего шелл-кода.

Обратите внимание, я внедряю x64 DLL в процесс x64. *

Мой шелл-код:

BYTE shellcode[] =
{
    // push rax save old register so we don't corrupt it
    0x50,

    // mov rax,0xff00efbeadde00ff <- this value is just
    // a place that will get replaced by our entrypoint pointer 
    0x48, 0xB8, 0xFF, 0x00, 0xDE, 0xAD, 0xBE, 0xEF, 0x00, 0xFF, 

    // sub rsp,0x28 (align the stack and shadow space allocation)
    0x48, 0x83, 0xEC, 0x28,

    // call rax 
    0xFF, 0xD0,

    // add rsp,0x28
    0x48, 0x83, 0xC4, 0x28,

    // pop rax
    0x58,

    // ret
    0xC3
};
...