Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   fasm реестр (https://forum.antichat.xyz/showthread.php?t=185210)

BastardFromHell 09.03.2010 06:40

fasm реестр
 
чот не получается в реестр ключ добавить, что не так:???
Код:

include 'win32a.inc'
format PE GUI 4.0
entry start
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
section '.data' data readable
reestrsub db 'Software\Microsoft\Windows\CurrentVersion\Run',0
rname1 db 'netagent',0
rname2 db 'test',0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
section '.code' code readable executable
start:



push esp
push KEY_ALL_ACCESS
push 0
push reestrsub
push HKEY_LOCAL_MACHINE
call [RegOpenKeyEx]
push eax
pop esp

push 4
push rname2
push REG_SZ
push 0
push rname1
push eax
call [RegSetValueEx]

push 0
call [ExitProcess]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
section 'idata' import data readable

library kernel32,'kernel32.dll'
import kernel32,\
      ExitProcess,'ExitProcess'

library advapi32,'advapi32,dll'
import advapi32,\
          RegSetValueEx,'RegSetValueEx',\
          RegOpenKeyEx,'RegOpenKeyEx'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


Gar|k 09.03.2010 09:45

сделай проверку на открытие ключа... если ты не администратор то запись в HKEY_LOCAL_MACHINE тебе по идее запрещена.

так ВРОДЕ все правильно...

BastardFromHell 09.03.2010 10:03

да всё норм, черз invoke работает. А так - нет

becensed 09.03.2010 15:16

для начала на импорт внимание обрати, потом почитай, зачем нужны регистры, в частности esp. Потом почитай, как надо добавлять значение в реестр.

BastardFromHell 09.03.2010 16:43

Цитата:

Сообщение от becensed
для начала на импорт внимание обрати, потом почитай, зачем нужны регистры, в частности esp. Потом почитай, как надо добавлять значение в реестр.

тоесть ты тоже не знаешь?

ntldr 09.03.2010 17:06

Код:

push esp
push KEY_ALL_ACCESS
push 0
push reestrsub
push HKEY_LOCAL_MACHINE
call [RegOpenKeyEx]
push eax                -  пихаем в стек хендл ключа
pop esp                  - из стека берем это значение, прописываем в esp, получаем говно

если не хочешь invoke, делай pushad/popad, либо вообще не делай push esp, состояние регистров в юзер-моде не особо критично ( если конечно в них нет важных данных)

BastardFromHell 09.03.2010 17:16

Цитата:

Сообщение от ntldr
Код:

push esp
push KEY_ALL_ACCESS
push 0
push reestrsub
push HKEY_LOCAL_MACHINE
call [RegOpenKeyEx]
push eax                -  пихаем в стек хендл ключа
pop esp                  - из стека берем это значение, прописываем в esp, получаем говно

если не хочешь invoke, делай pushad/popad, либо вообще не делай push esp, состояние регистров в юзер-моде не особо критично ( если конечно в них нет важных данных)

так тоже не работает

cheater_man 09.03.2010 21:50

ты пихаешь в стек
Код:

push eax
а где pop???(что ты с ним натворил, не имеет смысла без pop)

becensed 09.03.2010 22:32

Автор ищет готовое решения и не может подумать над сказанным. Нет смысла ему что-либо объяснять.

BastardFromHell 09.03.2010 22:44

ну то есть вы сами ничего не знаете


Время: 03:14