Как открыть HKEY_CLASSES_ROOT?

Тема в разделе "WASM.BEGINNERS", создана пользователем Flasher, 30 июн 2006.

  1. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Здравствуйте.

    Не подскажите как открыть HKEY_CLASSES_ROOT через ZwOpenKey?

    В kmdkit нет инфы на сей счёт.

    Вот как пытаюсь:
    Код (Text):
    1. .386
    2. .model flat, stdcall
    3. option casemap:none
    4. include \masm32\include\user32.inc
    5. includelib \masm32\lib\user32.lib
    6. include \masm32\include\kernel32.inc
    7. includelib \masm32\lib\kernel32.lib
    8. include \masm32\include\w2k\ntdll.inc
    9. includelib \masm32\lib\w2k\ntdll.lib
    10. include \masm32\include\w2k\ntddk.inc
    11. include \masm32\macros\strings.mac
    12. .code
    13. OpenKey proc
    14. local oa:OBJECT_ATTRIBUTES
    15. local hKey:HANDLE
    16.        CCOUNTED_UNICODE_STRING "\\Registry\\Root\\CLSID",KeyPath,4
    17.      ;  CCOUNTED_UNICODE_STRING "\\Registry\\Machine\\Software",KeyPath,4
    18.        InitializeObjectAttributes addr oa,addr KeyPath,OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE,0,0
    19.        
    20.        invoke ZwOpenKey,addr hKey,KEY_ENUMERATE_SUB_KEYS,addr oa
    21.         .if eax == 0
    22.            invoke MessageBox,0,$CTA0("STATUS_SUCCESS"),$CTA0("open"),0
    23.         .elseif eax == 0C0000022h
    24.            invoke MessageBox,0,$CTA0("STATUS_ACCESS_DENIED"),0,0
    25.         .elseif eax == 0C0000008h
    26.            invoke MessageBox,0,$CTA0("STATUS_INVALID_HANDLE"),0,0
    27.         .elseif eax == 0C0000024h
    28.            invoke MessageBox,0,$CTA0("STATUS_OBJECT_TYPE_MISMATCH"),0,0
    29.         .elseif eax == 0C0000034h
    30.            invoke MessageBox,0,$CTA0("STATUS_OBJECT_NAME_NOT_FOUND"),0,0
    31.         .elseif eax == 0C000017Ch
    32.            invoke MessageBox,0,$CTA0("STATUS_KEY_DELETED"),0,0
    33.         .endif
    34.        invoke ZwClose,hKey
    35.        invoke ExitProcess,0
    36. OpenKey endp
    37. end OpenKey


    Возврашает STATUS_OBJECT_NAME_NOT_FOUND.

    Спасибо.
     
  2. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    The content of HKEY_CLASSES_ROOT comes from two sources: HKEY_LOCAL_MACHINE\SOFTWARE\Classes and HKEY_CURRENT_USER\SOFTWARE\Classes



    Видимо так: "\\Registry\\Machine\\Software\\Classes\\CLSID"
     
  3. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    bogrus, т.е. в regedit'e ветка HKEY_CLASSES_ROOT - зрительный обман ? все данные берётся с Classes? :)