Получение ошибки Синтаксическая ошибка встроенного ассемблера в 'код операции';найдено «постоянным» - PullRequest
0 голосов
/ 24 июня 2018

Я получил простой код, и он дает мне ошибку компилятора без причины

ошибка синтаксиса встроенного ассемблера в 'код операции'; найдено «константа»

DWORD connectFunctionAddressReturn = 0x775368F7;

int __cdecl ws2_32_connect_hook_output(SOCKET s, const struct sockaddr *name, int namelen) {
    struct sockaddr_in *in = (struct sockaddr_in *)connect_name;
    printf("Attempting connect %d.%d.%d.%d : %d\n", in->sin_addr.S_un.S_un_b.s_b1, in->sin_addr.S_un.S_un_b.s_b2, in->sin_addr.S_un.S_un_b.s_b3, in->sin_addr.S_un.S_un_b.s_b4, htons(in->sin_port));
}


void __declspec(naked) ws2_32_connect_hook(void) { //ws2_32.connect = 775368F5

    __asm {
        PUSHAD //To be in safe environment
        PUSHFD //To be safe environment

        PUSH 0x10
        PUSH DWORD PTR SS:[EBP+0x8]
        PUSH DWORD PTR DS:[ESI+0x14]
        CALL DWORD PTR ws2_32_connect_hook_output  //<-- ERROR HERE
        ADD ESP, 0xC //clean __cdecl,4,8,C

        POPFD //Finish being in safe environment
        POPAD //Finish being in safe environment
        JMP connectFunctionAddressReturn // <-- ERROR HERE
    }
}

1 Ответ

0 голосов
/ 29 июня 2018

решил, я определил CALL AND JMP, поэтому ошибка в коде ASM.

#define CALL 0xE8
#define JMP 0xE9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...