Как в FASM 1.65 или в Dev-C++ 4.9.9 внести данные в системный реестр?

Тема в разделе "WASM.BEGINNERS", создана пользователем Superplaneta, 15 авг 2006.

  1. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    Есть программа, основаная на примере:

    Код (Text):
    1. include 'INCLUDE/win32ax.inc'
    2.  
    3. .code
    4.  
    5.   start:
    6.  
    7.  
    8. ; СЮДА НАДО ДОБАВИТЬ КОД, ЧТОБЫ ВНЕСТИ, ДОПУСТИМ "123.EXE" В АВТОЗАГРУЗКУ
    9. ; СИСТЕМНОГО РЕЕСТРА. ЧТО ТУТ НАПИСАТЬ???
    10.  
    11.         invoke  MessageBox,HWND_DESKTOP,"Программа 123 успешно помешена в автозагрузку.","Готово ...",MB_OK
    12.  
    13.         invoke  ExitProcess,0
    14.  
    15. .end start
    Или как это сделать на Dev-C++ 4.9.9. Много лет писал софт под Линукс и Юникс.
    А вот на этом примере для винды затормозился. Кто может, напишите код, буду
    очень благодарен, а то требуется замена "рег" файлам программкой.

    Много видел примеров в сети, но не получается :))) Мне нужно именно на этих
    двух (точнее хоть на какомто из них) компиляторов (сред разработки).

    СПАСИБО! СВОБОДНЫЙ И БЕСПЛАТНЫЙ СОФТ - ЭТО ЛУЧШИЙ СОФТ!
     
  2. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Код (Text):
    1. SHSetValue(HKEY_LOCAL_MACHINE, "Software\\Mircosoft\\Windows\\CurrentVersion\\Run", "MyTrojan", REG_SZ,  "123.exe", strlen("123.exe"));
    P.S. троянчеги писать не хорошо :)
     
  3. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    SHSetValue(HKEY_LOCAL_MACHINE, "Software\\Mircosoft\\Windows\\CurrentVersion\\Run", "MyTrojan", REG_SZ, "123.exe", strlen("123.exe"));

    Говорит:
    [Linker error] undefined reference to `_imp__SHSetValueA@24'
    ld returned 1 exit status
    D:\dev\setup\Makefile.win [Build Error] [setup.exe] Error 1

    Этот код не работает. И это не вредоносная программа, а будуший инсталлятор.
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Возьми autoruns и посмотри, что считается автозагрузкой.
    Потом смотри в PlatformSDK функции работы с реестром: RegCreateKeyEx, RegSetValueEx, RegCloseKey.
     
  5. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    Народ всё проще. дайте пример кода, как описано:

    Код (Text):
    1. include 'INCLUDE/win32ax.inc'
    2.  
    3. .code
    4.  
    5.   start:
    6.  
    7.  
    8. ; СЮДА НАДО ДОБАВИТЬ КОД, ЧТОБЫ ВНЕСТИ, ДОПУСТИМ "123.EXE" В АВТОЗАГРУЗКУ
    9. ; СИСТЕМНОГО РЕЕСТРА. ЧТО ТУТ НАПИСАТЬ???
    10.  
    11.         invoke  MessageBox,HWND_DESKTOP,"Программа 123 успешно помешена в автозагрузку.","Готово ...",MB_OK
    12.  
    13.         invoke  ExitProcess,0
    14.  
    15. .end start
    А если кто то знаком с тем, как это сделать на Dev-C++ 4.9.9, то на нем.
    Мне важно чтобы хоть на одном из них и всё. Именно рабочий, полный пример.

    ОГРОМНОЕ Спасибо ЗАРАНИЕ!!!!
     
  6. tmp_name_0001

    tmp_name_0001 New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    85
    Ты чё непробиваемый джо? тебе же ледяной студент сказал прочитай RegSetValueEx а какой ключ в авторан пропишет тебе написал сэнзоред
     
  7. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    читал - не могу написать не фига - компилируется а не работает!!!

    не материться здесь
     
  8. tmp_name_0001

    tmp_name_0001 New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    85
    Прииведи код который пишешь
     
  9. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    Бил так:
    invoke RegOpenKeyEx,HKEY_LOCAL_MACHINE,szSubKey0,ebx,KEY_READ+KEY_WRITE,esp
    и поткатывал:
    invoke RegSetValueEx,[hKey],szValName0,ebx,REG_SZ,eax,38
     
  10. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    Вот что писал:

    Код (Text):
    1. include 'INCLUDE/win32ax.inc'
    2.  
    3. .code
    4.  
    5.   start:
    6.         invoke RegOpenKeyEx,HKEY_LOCAL_MACHINE,szSubKey1,1,KEY_READ+KEY_WRITE,esp
    7.         invoke RegSetValueEx,HKEY_LOCAL_MACHINE,szValName0,1,REG_SZ,eax,38
    8.         invoke  MessageBox,HWND_DESKTOP,"Hi! I'm the example program!","Win32 Assembly",MB_OK
    9.         invoke  ExitProcess,0
    10.  
    11.  
    12. szSubKey0    db   'SOFTWARE\Microsoft\Windows\CurrentVersion\'
    13.              db   'ShellServiceObjectDelayLoad',0
    14. szSubKey1    db   'Software\Microsoft\Windows\CurrentVersion\Run',0
    15. szSubKey2    db   'CLSID\'
    16.              rb   38
    17.              db   '\InprocServer32',0
    18. szValName0   db   'netagent',0
    19. szNlsFile    db   'c_1249.nls',0,0
    20.  
    21. .end start
     
  11. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    Superplaneta
    ты хоть понял что написал?

    у RegOpenKeyEx третий параметр 0.
    последний параметр - адрес куда она положит хэндл.
    и потом тот хэндл ты и должен использовать как первый параметр в RegSetValueEx.

    у RegSetValueEx третий параметр тоже 0.

    а предпоследний параметр?
    прочти что в нём должно быть. Указатель на буффер.
     
  12. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    держи код:
    Код (Text):
    1. push eax
    2. invoke RegOpenKeyEx,\
    3. HKEY_LOCAL_MACHINE,\
    4. "SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad",\
    5. 0,\
    6. KEY_READ+KEY_WRITE,\
    7. esp
    8. pop eax
    9. invoke RegSetValueEx,\
    10. eax,\
    11. "netagent",\
    12. 0,\
    13. REG_SZ,\
    14. "test",\
    15. 4
     
  13. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    Спасибо, dead_body, ВСЁ работает!
     
  14. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    нужно линкеру указать соответствующую библиотеку (shlwapi.lib), что то вроде такого:
    gcc -o test test.c -lshlwapi
     
  15. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    А как писать REG_DWORD??? он дает странный параметр если писать
    invoke RegSetValueEx,eax,"ContigFileAllocSize",0,REG_DWORD,"0x00000200",4
     
  16. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    IceStudent

    Я так и делал раньше - не работает!
     
  17. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    push eax
    invoke RegOpenKeyEx,HKEY_LOCAL_MACHINE,\
    "System\CurrentControlSet\Control\FileSystem",\
    0,KEY_READ+KEY_WRITE,esp
    pop eax
    invoke RegSetValueEx,eax,"ContigFileAllocSize",0,REG_DWORD,0x00000200,4

    В этом случае FASM ВООБШЕ ничего не пишет!
     
  18. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Смотри в отладчике, что не так
     
  19. Superplaneta

    Superplaneta New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2006
    Сообщения:
    44
    Да вроде всё нормально. Не понятно!
    ЭТО ЧТОТО В КОДЕ:

    include 'INCLUDE/win32ax.inc'

    .code

    start:
    push eax
    invoke RegOpenKeyEx,HKEY_LOCAL_MACHINE,\
    "SOFTWARE\Microsoft\Windows\CurrentVersion\Run",\;"System\CurrentControlSet\Control\FileSystem",\
    0,KEY_READ+KEY_WRITE,esp
    pop eax
    invoke RegSetValueEx,eax,"ContigFileAllocSize",0,REG_DWORD,"0000000a",4

    invoke MessageBox,HWND_DESKTOP,"Hi! I'm the example program!","Win32 Assembly",MB_OK
    invoke ExitProcess,0

    .end start
     
  20. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Код (Text):
    1. invoke RegOpenKeyEx,HKEY_LOCAL_MACHINE,\
    2. "SOFTWARE\Microsoft\Windows\CurrentVersion\Run",\;"System\CurrentControlSet\Control\FileSystem",\
    3. 0,KEY_READ+KEY_WRITE,esp
    4. cmp eax, ERROR_SUCCESS
    5. jne fuck
    6. pop eax
    7. ...