чот не получается в реестр ключ добавить, что не так:??? Code: 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' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
сделай проверку на открытие ключа... если ты не администратор то запись в HKEY_LOCAL_MACHINE тебе по идее запрещена. так ВРОДЕ все правильно...
для начала на импорт внимание обрати, потом почитай, зачем нужны регистры, в частности esp. Потом почитай, как надо добавлять значение в реестр.
Code: 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, состояние регистров в юзер-моде не особо критично ( если конечно в них нет важных данных)
это просто лол... 1. library advapi32,'advapi32,dll' - запятая вместо точки перед "dll" 2. advapi32 не экспортирует такой функции, как RegOpenKeyEx Есть RegOpenKeyExA - ansi, и RegOpenKeyExW - юникод то же самое можно сказать и про RegSetValueEx 3. Code: push esp push KEY_ALL_ACCESS push 0 push reestrsub push HKEY_LOCAL_MACHINE call [RegOpenKeyEx] pop eax тут попробуй так