ZwOpenSymbolicLinkObject

Discussion in 'WASM.WIN32' started by Gennadiy_M, Sep 4, 2008.

  1. Gennadiy_M

    Gennadiy_M New Member

    Blog Posts:
    0
    Joined:
    Mar 20, 2008
    Messages:
    22
    Не получается открыть ссылку по ZwOpenSymbolicLinkObject. Как правильно заполнить OBJECT_ATTRIBUTES?

    DATA segment dword public use32 'DATA'
    link_h dd ?
    object_attributes OBJECT_ATTRIBUTES <?>
    file_name dw '\','?','?','\','c',':'
    file_name2 dd 6
    dd 6
    dd offset file_name
    DATA ends
    CODE segment dword public use32 'CODE'
    _start:
    mov [object_attributes._Length_],24
    mov [object_attributes.ObjectName],offset file_name2
    push offset object_attributes
    push GENERIC_READ
    push offset link_h
    call __imp__ZwOpenSymbolicLinkObject@12

    Выдаёт ошибку 80000002h (STATUS_DATATYPE_MISALIGNMENT?)

    Может структуру не правильно вбил? :

    OBJECT_ATTRIBUTES struc
    _Length_ dd ?
    RootDirectory dd ?
    ObjectName dd ?
    Attributes dd ?
    SecurityDescriptor dd ?
    SecurityQualityOfService dd ?
    OBJECT_ATTRIBUTES ends
     
  2. n0name

    n0name New Member

    Blog Posts:
    0
    Joined:
    Jun 5, 2004
    Messages:
    4,336
    Location:
    Russia
    выравнивание забыл.
     
  3. Gennadiy_M

    Gennadiy_M New Member

    Blog Posts:
    0
    Joined:
    Mar 20, 2008
    Messages:
    22
    Не ожидал, но помогло.
    Теперь выдаёт ошибку 0с0000005h (STATUS_ACCESS_VIOLATION).
    Нет прав на доступ? С путём что-то не так?
     
  4. blast

    blast New Member

    Blog Posts:
    0
    Joined:
    Mar 8, 2008
    Messages:
    170
    вот рабочий код на masm
    Code (Text):
    1. Start proc
    2. Local Handle:HANDLE
    3. Local ObjAttr:OBJECT_ATTRIBUTES
    4. Local UniName:UNICODE_STRING
    5.     lea edx,pName
    6.     invoke RtlCreateUnicodeStringFromAsciiz, addr UniName, edx
    7.     test eax,eax
    8.     jz exit_
    9.     lea edx,UniName
    10.         xor eax,eax
    11.     mov ObjAttr.uLength,SizeOf OBJECT_ATTRIBUTES
    12.     mov ObjAttr.hRootDirectory,eax
    13.     mov ObjAttr.pSecurityDescriptor,eax
    14.     mov ObjAttr.pSecurityQualityOfService,eax
    15.     mov ObjAttr.uAttributes,eax
    16.     mov ObjAttr.pObjectName,edx
    17.     invoke ZwOpenSymbolicLinkObject, addr Handle, SYMBOLIC_LINK_QUERY, addr ObjAttr
    18. exit_:
    19.     ret
    20. pName   CHAR    "\??\C:",0
    21. Start endp
     
  5. Gennadiy_M

    Gennadiy_M New Member

    Blog Posts:
    0
    Joined:
    Mar 20, 2008
    Messages:
    22
    Всё, разобрался, спасибо. Не правильно в UNICODE переводил.