首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FASM -加建香港大学

FASM -加建香港大学
EN

Stack Overflow用户
提问于 2012-10-14 02:59:34
回答 1查看 343关注 0票数 0

我正试图通过在"SOFTWARE\Microsoft\Windows\CurrentVersion\Run“中添加一个条目来使FASM应用程序添加到系统启动中。

我使用的API如下:

RegOpenKeyExA

RegSetValueExA

RegCloseKey

在先进32.dll

运行我的代码时,从未创建该条目。这是我的代码:

代码语言:javascript
复制
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中是不可访问的。

EN

回答 1

Stack Overflow用户

发布于 2012-10-14 03:25:52

当您调用RegSetValueEx时,您传递的是phkresult地址,而不是它的值。

所以,试试这样的东西:

代码语言:javascript
复制
    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]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12878942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档