Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.08.2011, 10:28   #1
WebbMan
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 168
По умолчанию FASM + RegCreateKeyEx

Подскажите пожалуйста как использовать api-функцию RegCreateKeyEx в FASM, и как дать ссылку на файл api-функции RegSetValueEx
пишу так:
Код:
format  pe gui 4.0
         entry   start
         include 'win32a.inc'
 
 start:


          invoke RegCreateKeyEx, HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\Run',NULL,NULL,NULL,KEY_ALL_ACCESS,NULL,hkey,NULL
          invoke RegSetValueEx,[hkey],'MyProgram',NULL,REG_SZ,!,40
          invoke RegCloseKey,[hkey]

         invoke  ExitProcess,0


         hkey dd ?


         data    import
         library kernel32,'kernel32.dll',\
                 user32,'user32.dll'
         include 'api/kernel32.inc'
         include 'api/user32.inc'
         end     data
Ошибки:
Instruction:
'Software\Microsoft\Windows\Current Version\Run'
Source:
RegCreateKey.asm[8]
proc32.inc[17]
WebbMan вне форума Ответить с цитированием
Старый 01.08.2011, 10:45   #2
777user777
Пользователь
 
Аватар для 777user777
 
Регистрация: 29.11.2010
Сообщений: 38
По умолчанию

Вот полностью~ рабочий код:


Код:
format	pe gui 4.0
	 entry	 start
	 include 'win32a.inc'



 hkey dd ?
 
 start:


	  invoke RegCreateKeyEx, HKEY_CURRENT_USER,AutoKey,NULL,NULL,NULL,KEY_ALL_ACCESS,NULL,hkey,NULL
	  invoke RegSetValueEx,[hkey],ValueName,NULL,REG_SZ,0,0
	  invoke RegCloseKey,[hkey]

	 invoke  ExitProcess,0




	 section '.data' data readable
	 AutoKey db 'Software\Microsoft\Windows\CurrentVersion\Run',0
	 ValueName db 'MyProgram',0


	section '.idata'   import readable
	 library kernel32,'kernel32.dll',\
		 advapi32,'advapi32.dll'
	 include 'api/kernel32.inc'
	 include 'api/advapi32.inc'

Последний раз редактировалось 777user777; 01.08.2011 в 11:27.
777user777 вне форума Ответить с цитированием
Старый 01.08.2011, 12:54   #3
WebbMan
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 168
По умолчанию

Понятно спасибо, значит функции (RegCreateKeyEx) не нравилось то что в строке Software\Microsoft\Windows\CurrentV ersion\Run нет заканчивающего строку - нуль байта.
А как интересно указать ссылку на нужную программу? ведь если я не ошибаюсь инструкция (invoke RegSetValueEx,[hkey],ValueName,NULL,REG_SZ,0,0) указывает на то что в качестве ссылки будет использован этот же исполняемый файл.
WebbMan вне форума Ответить с цитированием
Старый 01.08.2011, 13:14   #4
777user777
Пользователь
 
Аватар для 777user777
 
Регистрация: 29.11.2010
Сообщений: 38
По умолчанию

Цитата:
Сообщение от WebbMan Посмотреть сообщение
ведь если я не ошибаюсь инструкция (invoke RegSetValueEx,[hkey],ValueName,NULL,REG_SZ,0,0) указывает на то что в качестве ссылки будет использован этот же исполняемый файл.
нет,для этого~ надо сделать так:

Код:
format	pe gui 4.0
	 entry	 start
	 include 'win32a.inc'



 hkey dd ?
szFile dd ?
 
 start:


	  invoke RegCreateKeyEx, HKEY_CURRENT_USER,AutoKey,NULL,NULL,NULL,KEY_ALL_ACCESS,NULL,hkey,NULL
invoke GetModuleFileName,NULL,szFile,256
invoke lstrlen,szFile
	  invoke RegSetValueEx,[hkey],ValueName,NULL,REG_SZ,szFile,eax
	  invoke RegCloseKey,[hkey]

	 invoke  ExitProcess,0




	 section '.data' data readable
	 AutoKey db 'Software\Microsoft\Windows\CurrentVersion\Run',0
	 ValueName db 'MyProgram',0


	section '.idata'   import readable
	 library kernel32,'kernel32.dll',\
		 advapi32,'advapi32.dll'
	 include 'api/kernel32.inc'
	 include 'api/advapi32.inc'
777user777 вне форума Ответить с цитированием
Старый 01.08.2011, 14:17   #5
WebbMan
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 168
По умолчанию

Спасибо большое, посмотрела в отладчике как работает функция (GetModuleFileName) она возвращает адрес начала строки(путь до файла) + смещение байтов до конца этой строки, в общем у меня получилось реализовать еще так:
Код:
format  pe gui 4.0
         entry   start
         include 'win32a.inc'

 hkey dd ?
 szFile db 'D:\FASM\My_source\test.exe', 0

 start:

          invoke RegCreateKeyEx, HKEY_CURRENT_USER,AutoKey,NULL,NULL,NULL,KEY_ALL_ACCESS,NULL,hkey,NULL
          invoke lstrlen,szFile
          invoke RegSetValueEx,[hkey],ValueName,NULL,REG_SZ,szFile,eax
          invoke RegCloseKey,[hkey]
          invoke  ExitProcess,0


         section '.data' data readable
         AutoKey db 'Software\Microsoft\Windows\CurrentVersion\Run',0
         ValueName db 'MyProgram',0


        section '.idata'   import readable
         library kernel32,'kernel32.dll',\
                 advapi32,'advapi32.dll'
         include 'api/kernel32.inc'
         include 'api/advapi32.inc'
WebbMan вне форума Ответить с цитированием
Старый 01.08.2011, 14:25   #6
777user777
Пользователь
 
Аватар для 777user777
 
Регистрация: 29.11.2010
Сообщений: 38
По умолчанию

не за что.
а вам вообще~ это для чего?
777user777 вне форума Ответить с цитированием
Старый 01.08.2011, 15:27   #7
WebbMan
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 168
По умолчанию

Хотела написать простенькую программу которая может быстро добавить в автозапуск (µTorrent + The Bat + Opera + AIMP) и наоборот их всех быстро убирать с автозапуска.
WebbMan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Учебник по FASM Roof Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 33 09.12.2013 23:16
Fasm и Masm Arsenx777 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 27.06.2011 12:26
FASM 2 строки kka495 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 28.04.2011 17:04
Вопросы по FASM Crivel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 18.06.2009 12:02
MySQL via FASM Ivan_32 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 14.05.2009 04:55