Не фунциклирует код, добавляющий запись в реестр W7

Тема в разделе "WASM.BEGINNERS", создана пользователем moderhi, 11 окт 2011.

  1. moderhi

    moderhi New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2011
    Сообщения:
    189
    Почему не фунциклирует код, добавляющий запись в реестр W7 ? (в ХР работает прекрасно)

    Код (Text):
    1. .386
    2. .model flat, stdcall
    3. option casemap :none;
    4.  
    5. include \masm32\include\windows.inc
    6. include \masm32\include\advapi32.inc
    7. include \masm32\include\kernel32.inc
    8. includelib \masm32\lib\kernel32.lib
    9. includelib \masm32\lib\advapi32.lib
    10.  
    11.  
    12. .data
    13.         Commend db "Software\Microsoft\Windows\CurrentVersion\Run",0
    14.         NameKey    db "sam",0
    15.         Name db "C:\Sam.exe",0
    16. .data?
    17.         hKey dd ?
    18. .code
    19. Start:
    20.         invoke RegCreateKeyEx, HKEY_LOCAL_MACHINE, offset Commend, NULL, offset NameKey, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, NULL, offset hKey, NULL
    21.         invoke RegSetValueEx, hKey, offset NameKey, NULL, REG_SZ, offset Name, 20
    22.         invoke RegCloseKey, hKey
    23.         call ExitProcess
    24. end Start
    код компилируется и запускается, но записи в реестре не делает.
     
  2. Ezrah

    Ezrah Member

    Публикаций:
    0
    Регистрация:
    22 мар 2011
    Сообщения:
    411
    Нет прав на доступ.
     
  3. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    moderhi
    Скорее всего в 7-ке более тщательно защитили места, куда вирусы любят "гадить". Например, "Software\Microsoft\Windows\CurrentVersion\Run",
     
  4. moderhi

    moderhi New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2011
    Сообщения:
    189
    в ручную-то получается, значит есть права.
     
  5. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Сказки не расказывай. Вручную - это через regedit? :) Так его не новички писали. Значит там алгоритм чуть посложнее - с учетом нововедений...
     
  6. moderhi

    moderhi New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2011
    Сообщения:
    189
    valterg

    "невирусные" программы делают запись
     
  7. moderhi

    moderhi New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2011
    Сообщения:
    189
    может в семерке есть новая api для редактирования реестра?
     
  8. moderhi

    moderhi New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2011
    Сообщения:
    189
    дизасмер показывает что в regedit используются функции с приставкой W.
    например вместо RegCreateKeyEx -RegCreateKeyW, может кто подскажет вчем отличие?
     
  9. moderhi

    moderhi New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2011
    Сообщения:
    189
    и в гугле глухо.... из инклюды масма advapi32 только ясно что - "RegCreateKeyW PROTO :lol: WORD,:lol: WORD,:lol: WORD"
     
  10. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    moderhi
    Проверь eax и вызови GetLastError.
     
  11. Ezrah

    Ezrah Member

    Публикаций:
    0
    Регистрация:
    22 мар 2011
    Сообщения:
    411
    regedit от админа запускается, если что
    запускайте свою программу от админа, и будет счастье
     
  12. rozarom

    rozarom New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2011
    Сообщения:
    56
    я удивлена! HKLM и HKCU - разницу видете? Без прав можно писать к юзеру, но не как не в ветку машины
     
  13. moderhi

    moderhi New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2011
    Сообщения:
    189
    rozarom

    вижу. спасибо. а как с машиной скорефаниться?
     
  14. rozarom

    rozarom New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2011
    Сообщения:
    56
    обход UAC или просить права. 'регедит' при запуске их спрашивает.
    -как их просить?
    -манифест к файлу
    -как?
    -поиск по форуму
     
  15. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Ну Ex и без Ex это вообще разные - с Ex больше параметров можно/нужно задать. W - означает wide char, т.е. строковые параметры задают не в ANSI ( A ), а в Unicode.

    Ну не знаю. В яндексе прекрасно все видно: http://www.programmersforum.ru/showthread.php?t=61814
    Я про wide char узнал в один из первых поисков какой-то API-функции много лет назад.
     
  16. rozarom

    rozarom New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2011
    Сообщения:
    56
    мне вообще смешно с фразы
    с последующим разбром дизасма
     
  17. moderhi

    moderhi New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2011
    Сообщения:
    189
    valterg спасибо.

    rozaromа верю что вам смешно!
     
  18. rozarom

    rozarom New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2011
    Сообщения:
    56
    нет, там разумеется много нового(к примеру заглушки), но как вы думаете: если до сих пор поддерживаются апи чуть ли не с 95'ой, - кто резко сменит их формат, и без того часть программ не работает даже в режиме совместимости
     
  19. moderhi

    moderhi New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2011
    Сообщения:
    189
    rozarom
    кто еще, конечно микрософт. им не выгодно обеспечивать абсолютную совместимость с прогами для предъидущих версий виндюшек.
     
  20. rozarom

    rozarom New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2011
    Сообщения:
    56
    зря вы так. они даже П.О. сейчас БЕСПЛАТНО раздают. пытаются удержать на свой операционной, дабы не ушли все на линухи