решено. неучел что первый параметр при сисколле передается через r10 а в rcx сохраняется retRip собственно решил задачу включением билдстепа на масме. да и еще такой вопрос (пишу в студии 10) - когда добавляю в проект масм, то почемуто функции в объектниках могу связать (с сей и с самого масма) а вот глобальные переменные - нет. декорации проверял - все норм но никак почемуто( такой вот кодес: Код (Text): ; ; extern "C" NTSTATUS ApiCallNtService(ULONG id, ...); ; ApiCallNtService PROC mov rax, rcx mov r10, rdx mov rdx, r8 mov r8, r9 mov r9, [rsp+28h] add rsp, 8 syscall ; rsp to stack param distance 20h sub rsp, 8 ret ApiCallNtService ENDP ;подразумевается что вызывающая функция уже сделала стек-бекинг например: NTSTATUS rc; ULONG callId = GetSyscallIndex(ntdll, "NtClose"); rc = ApiCallNtService(callId, INVALID_HANDLE_VALUE);