fasm реестр

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by BastardFromHell, 9 Mar 2010.

  1. BastardFromHell

    Joined:
    5 Feb 2010
    Messages:
    50
    Likes Received:
    18
    Reputations:
    6
    чот не получается в реестр ключ добавить, что не так:???
    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'
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     
    #1 BastardFromHell, 9 Mar 2010
    Last edited: 9 Mar 2010
    2 people like this.
  2. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    сделай проверку на открытие ключа... если ты не администратор то запись в HKEY_LOCAL_MACHINE тебе по идее запрещена.

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

    Joined:
    5 Feb 2010
    Messages:
    50
    Likes Received:
    18
    Reputations:
    6
    да всё норм, черз invoke работает. А так - нет
     
  4. becensed

    becensed Member

    Joined:
    2 Dec 2009
    Messages:
    84
    Likes Received:
    24
    Reputations:
    1
    для начала на импорт внимание обрати, потом почитай, зачем нужны регистры, в частности esp. Потом почитай, как надо добавлять значение в реестр.
     
    #4 becensed, 9 Mar 2010
    Last edited: 9 Mar 2010
    1 person likes this.
  5. BastardFromHell

    Joined:
    5 Feb 2010
    Messages:
    50
    Likes Received:
    18
    Reputations:
    6
    тоесть ты тоже не знаешь?
     
  6. ntldr

    ntldr Elder - Старейшина

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    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, состояние регистров в юзер-моде не особо критично ( если конечно в них нет важных данных)
     
    #6 ntldr, 9 Mar 2010
    Last edited: 9 Mar 2010
  7. BastardFromHell

    Joined:
    5 Feb 2010
    Messages:
    50
    Likes Received:
    18
    Reputations:
    6
    так тоже не работает
     
  8. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    ты пихаешь в стек
    Code:
    push eax
    
    а где pop???(что ты с ним натворил, не имеет смысла без pop)
     
  9. becensed

    becensed Member

    Joined:
    2 Dec 2009
    Messages:
    84
    Likes Received:
    24
    Reputations:
    1
    Автор ищет готовое решения и не может подумать над сказанным. Нет смысла ему что-либо объяснять.
     
  10. BastardFromHell

    Joined:
    5 Feb 2010
    Messages:
    50
    Likes Received:
    18
    Reputations:
    6
    ну то есть вы сами ничего не знаете
     
  11. ntldr

    ntldr Elder - Старейшина

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    это просто лол...
    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
    тут попробуй так
     
  12. BastardFromHell

    Joined:
    5 Feb 2010
    Messages:
    50
    Likes Received:
    18
    Reputations:
    6
    не работает!