PPPS _asm sysenter - вообще разрешена в контексте пользовательского процесса?
Да
в стеке все три агрумента есть - есть. (кстати _stdcall - это передача аргументов справа-налево, если не путаю. так что кто будет первым в стеке?
вызов
syscall(0x28,0xfadec0de,0xffffffff);
получаем
будет
push 0xffffffff
push 0xfadec0de
push 0x28 // будет первым в стеке на момент
call ... // вызова call
_stdcall говорит только то что аргументы функции буду передавться только через стек и стек очищает сама функция
PS а вообще лажа. call - тоже сохраняет данные в стеке. на вскидку не помню, но там кажется большой список регистров был.
Данные о чем сохраняет call в стеке? Какой еще "большой список регистров"?
про CloseHandle - не знаю. по интерфейсу агрумент один, а что внутри - фиг его знает
все сведется к
MOV EAX,19
MOV EDX,7FFE0300
CALL DWORD PTR DS:[EDX]
RETN 4
где CALL DWORD PTR DS:[EDX]
если так интересно поставить отладчик, поставить BP на CloseHandle и посмотреть по шагам.
Смотрели , потому и спрашиваем. Если интерестно взгляните тоже.
PPS и какой смысл в такой функции вообще? все равно два лишних stdcall
Вызов системной функции без использования каких-либо API-вызовов.