我正在尝试通过在“SOFTWARE\Microsoft\Windows\CurrentVersion\Run”中添加一个条目来使我的 FASM 应用程序将自身添加到系统启动中
我正在使用以下 API:
RegOpenKeyExA
RegSetValueExA
RegCloseKey
在 advapi32.dll
运行我的代码时,永远不会创建该条目。这是我的代码:
format PE GUI 4.0
include "Win32A.Inc"
entry start
section ".idata" import data readable writable
library kernel32, "kernel32.dll",\
advapi32, "advapi32.dll"
import kernel32,\
lstrlen, "lstrlenA",\
ExitProcess, "ExitProcess"
import advapi32,\
RegOpenKeyExA, "RegOpenKeyExA",\
RegSetValueEx, "RegSetValueExA",\
RegCloseKey, "RegCloseKey"
section ".data" data readable writeable
sKey db "SOFTWARE\Microsoft\Windows\CurrentVersion\Run",0
lpData db "C:\File.txt",0
lpValueName db "Text File"
phkresult dd ?
section ".code" code readable executable
start:
invoke RegOpenKeyExA, HKEY_CURRENT_USER, sKey, 0, KEY_SET_VALUE, phkresult
invoke lstrlen, lpData
invoke RegSetValueEx, phkresult, lpValueName, 0, REG_SZ, lpData, eax
invoke RegCloseKey, phkresult
exit:
invoke ExitProcess, 0
我不明白为什么我的条目没有被添加到注册表中。对此问题的任何帮助将不胜感激。
尝试使用 OllyDbg 并提出以下建议:
不知道为什么我会收到拒绝访问错误。RegOpenKeyExA 返回 ERROR_SUCCESS
原来它正在将自己添加到启动中,但在 RegEdit 中不可见,仅在 MSConfig..weird..?