MASM中调用RegOpenKeyExA返回错误998 ERROR_NOACCESS的问题求助
MASM中调用RegOpenKeyExA返回错误998 ERROR_NOACCESS的问题求助
各位前辈好,我最近在写一个MASM程序,想给我的exe文件添加开机自启的注册表项,但调用RegOpenKeyExA时一直返回错误998(ERROR_NOACCESS),折腾了好久都没找到问题所在,麻烦帮忙看看我的代码哪里出问题了?
我的代码片段如下:
; Set hKey with RegOpenKeyExA Xor Ecx, Ecx Lea Ebx, [Ebp - 52H] Push Ebx ; phkResult Push 2H ; samDesired = KEY_SET_VALUE Push Ecx ; ulOptions = NULL Mov Cl, 6EH Push Ecx Push 75525C6EH Push 6F697372H Push 6556746EH Push 65727275H Push 435C7377H Push 6F646E69H Push 575C7466H Push 6F736F72H Push 63694D5CH Push 65726177H Push 74666F53H Push Esp ; lpSubkey = Software\Microsoft\Windows\CurrentVersion\Run Push 80000001H ; hKey = HKEY_CURRENT_USER Mov Eax, [Ebp - 34H] Call Eax ; Call RegOpenKeyEx Lea Edi, [Ebp - 52H] Mov Eax, [Ebp - 3CH] Lea Edx, [Ebp - 200H] ; Pointer to buffer that stores exe path Push Edx Call Eax ; Call lstrlenA ; RegSetValueExA Xor Ecx, Ecx Push Eax ; cbData Lea Eax, [Ebp - 200H] Push Eax
我自己排查了一下,猜测可能是注册表路径的构造有问题?或者是栈对齐、参数传递的问题?毕竟ERROR_NOACCESS是内存访问权限错误,但我实在定位不到具体错误点,有没有大佬能给点思路?
备注:内容来源于stack exchange,提问作者Hưng Bạch
相关产品推荐
相关产品推荐

