La función CreateProcessA falla debido a una violación de acceso en MASM64 (ml64.exe)
Un problema bastante similar a https://stackoverflow.com/questions/38420322/createprocessa-function-doesnt-work-in-masm64-ml64-exe, pero en mi caso creo que no se trata de un problema de alineamiento o tipos de datos de puntero en 64x. Aquí está el código:
;ml64.exe CreateProcessA.asm /link /subsystem:console /entry:main /LIBPATH:"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\um\x64" /defaultlib:kernel32.lib
extrn CreateProcessA : proc
PROCESS_INFORMATION struct
hProcess qword ?
hThread qword ?
dwProcessId dword ?
dwThreadId dword ?
PROCESS_INFORMATION ends
STARTUPINFOA struct
cb qword sizeof ( STARTUPINFOA )
lpReserved qword ?
lpDesktop qword ?
lpTitle qword ?
dwX dword ?
dwY dword ?
dwXSize dword ?
dwYSize dword ?
dwXCountChars dword ?
dwYCountChars dword ?
dwFillAttribute dword ?
dwFlags dword ?
wShowWindow word ?
cbReserved2 word 3 dup ( ? )
lpReserved2 qword ?
hStdInput qword ?
hStdOutput qword ?
hStdError qword ?
STARTUPINFOA ends
.const
NORMAL_PRIORITY_CLASS equ 020h
.data
processInfo PROCESS_INFORMATION <>
startupInfo STARTUPINFOA <>
szProcName db "C:\Windows\System32\cmd.exe", 00h
.code
main proc
lea rax, processInfo
lea rbx, startupInfo
push rax
push rbx
push 00h
push 00h
push NORMAL_PRIORITY_CLASS
push 00h
sub rsp, 20h
mov r9, 00h
mov r8, 00h
mov rdx, 00h
lea rcx, szProcName
call CreateProcessA
main endp
end
Error – Violación de acceso en kernelbase.dll en
movaps xmmword ptr ss:[rsp+C0],xmm0
¿Alguien puede aclarar qué está mal en mi código?
davy.ai
El mensaje de error indica una violación de acceso que ocurre en kernelbase.dll en la línea “movaps xmmword ptr ss:[rsp+C0],xmm0” del código. Esto sugiere un problema con el acceso a la memoria.
Es difícil determinar el problema exacto sin más información, pero puede estar relacionado con un alineamiento incorrecto o tipos de datos de puntero en el código. Sin embargo, el remitente cree que este no es el problema en su caso.
Puede ser necesario realizar un análisis y depuración adicionales para identificar y resolver el problema.