В чем здесь разница???

Discussion in 'WASM.BEGINNERS' started by yuri, Jun 15, 2008.

  1. yuri

    yuri New Member

    Blog Posts:
    0
    Joined:
    Jan 29, 2008
    Messages:
    47
    Code (Text):
    1.  .386
    2.     .model flat,stdcall
    3.     option casemap:none
    4.     include \masm32\include\w2k\ntdll.inc
    5.         include \masm32\include\w2k\ntstatus.inc
    6.         include \masm32\include\w2k\ntddk.inc
    7.         include \masm32\Macros\Strings.mac
    8.         includelib \masm32\lib\ntdll.lib
    9.  
    10.     .const
    11.  
    12.              CCOUNTED_UNICODE_STRING ""\\Registry\\Machine\\Software\\Мy Key ", g_usMachineKeyName, 4
    13.  
    14.          .data?
    15.  
    16.          .data
    17.  
    18.        
    19.  
    20.  
    21.  
    22.    WndProc pro
    23.  
    24.                   local oa:OBJECT_ATTRIBUTES
    25.                   local dwDisposition:DWORD
    26.                   local hKey:HANDLE
    27.                    
    28.  
    29.  
    30.         lea ecx, oa
    31.         InitializeObjectAttributes ecx,addr  g_usMachineKeyName , OBJ_CASE_INSENSITIVE, NULL, NULL
    32.  
    33.         invoke ZwCreateKey, addr hKey,KEY_ALL_ACCESS, addr oa, 0,0,REG_OPTION_NON_VOLATILE, addr dwDisposition
    34.  
    35.  
    36.  
    37.          invoke ZwClose, hKey
    38.  
    39.  
    40.   WndProc endp
    Code (Text):
    1. .386
    2.     .model flat,stdcall
    3.     option casemap:none
    4.     include \masm32\include\w2k\ntdll.inc
    5.         include \masm32\include\w2k\ntstatus.inc
    6.         include \masm32\include\w2k\ntddk.inc
    7.         include \masm32\Macros\Strings.mac
    8.         includelib \masm32\lib\ntdll.lib
    9.  
    10.     .const
    11.  
    12.          .data?
    13.  
    14.          .data
    15.  
    16.        szKeyName db "\\Registry\\Machine\\Software\\Мy Key ",0
    17.  
    18.  
    19.  
    20.    WndProc pro
    21.  
    22.                   local oa:OBJECT_ATTRIBUTES
    23.                   local dwDisposition:DWORD
    24.                   local hKey:HANDLE
    25.  
    26.                   local as:ANSI_STRING
    27.                   local us:UNICODE_STRING
    28.            
    29.  
    30.             invoke RtlInitAnsiString ,addr as ,addr szKeyName
    31.  
    32.             invoke RtlAnsiStringToUnicodeString,addr us,addr as,TRUE
    33.    
    34.                
    35.                
    36.           lea ecx, oa
    37.           InitializeObjectAttributes ecx, addr us, OBJ_CASE_INSENSITIVE,0, NULL
    38.           invoke ZwCreateKey, addr hKey,KEY_ALL_ACCESS, addr oa, 0,0,REG_OPTION_NON_VOLATILE, addr dwDisposition
    39.          
    40.  
    41.            invoke ZwClose, hKey      
    42.  
    43.    WndProc endp
    Это 2 кода создания одного и того же ключа HKLM\Software\Мy Key

    Но в первом примере ключ создаётся,а во втором нет

    В чем здесь разница не пойму ,и почему не создается ключ во втором примере???

    Подскажите пожалуйста

    ЗАРАНЕЕ БЛАГОДАРЕН
     
  2. Vilco

    Vilco Vitaly

    Blog Posts:
    0
    Joined:
    Mar 5, 2007
    Messages:
    190
    Location:
    Nsk, Russia
    Ужасно тяжело читаемо
     
  3. twgt

    twgt New Member

    Blog Posts:
    0
    Joined:
    Jan 15, 2007
    Messages:
    1,494
    yuri
    Используй вариант, который работает, зачем голову морочить.
     
  4. Freeman

    Freeman New Member

    Blog Posts:
    0
    Joined:
    Feb 10, 2005
    Messages:
    1,385
    Location:
    Ukraine
    разница в том, что в первом случае юникод строка формируется макросом, а во втором - не макросом.

    почему в первом случае, работает, а во втором - нет хз. у вас проверок на ошибки с отладочным выводом нет. в йадре даж выравнивание иногда играет не последнюю роль
     
  5. yuri

    yuri New Member

    Blog Posts:
    0
    Joined:
    Jan 29, 2008
    Messages:
    47
    Мож не правильно описан ключ в
    szKeyName db "\\Registry\\Machine\\Software\\Мy Key ",0

    почему он получается с "\\\

    Подскажите если кто знает, ну очень нужно ,и именно этим способом

    СПАСИБО
     
  6. q_q

    q_q New Member

    Blog Posts:
    0
    Joined:
    Oct 5, 2003
    Messages:
    1,706
    yuri
    Замени
    Code (Text):
    1. ...
    2. ;;szKeyName db "\\Registry\\Machine\\Software\\Мy Key ",0
    3. szKeyName db "\Registry\Machine\Software\Мy Key ",0
    4. ...