handle2name без дебюг привелегий. чем?

Тема в разделе "WASM.WIN32", создана пользователем djmans, 7 авг 2007.

  1. djmans

    djmans New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2006
    Сообщения:
    312
    NtQuerySystemInformation вить загибается без привелегий. че делать?
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Что значит handle2name? какой нейм ты хочешь получить?
     
  3. djmans

    djmans New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2006
    Сообщения:
    312
    нэйм, который принадлежит хендлу. :) в данном случаи нужно имя файла узнать. в данном случаи как я понял чтоб добраться до имени мне поможет лишь NtQuerySystemInformation. которая также как я понял вылетает без привилегий. хендл принадлежит моем же процессу.
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    У хендла нет имени. Имя у объекта есть, который описывает этот хендл.

    Нашел вот занятную функцию NtQueryObject:

     
  5. pushick

    pushick New Member

    Публикаций:
    0
    Регистрация:
    22 мар 2007
    Сообщения:
    95
    ога и успешных вам зависонов на NamedPipes =)
    ZwQueryObject это своеобразный святой грааль, сколько граблей уже сломано об него.
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Про named pipes с ним не в курсе) А для файлов он вроде работает.
    В сорсах он сводится к

    Код (Text):
    1.     case ObjectNameInformation:
    2.  
    3.         //
    4.         //  Call a local worker routine
    5.         //
    6.  
    7.         Status = ObQueryNameString( Object,
    8.                                     (POBJECT_NAME_INFORMATION)ObjectInformation,
    9.                                     ObjectInformationLength,
    10.                                     &TempReturnLength );
    11.         break;
    Хотя ObQueryNameString конечно глючная...
     
  7. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    есть такая фишка, зависнет всё нах, по этому лучше в потоке вызывать и прибивать по времени.
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    n0name
    При получении имени или при любом коде ObjectInformationClass ?
     
  9. pushick

    pushick New Member

    Публикаций:
    0
    Регистрация:
    22 мар 2007
    Сообщения:
    95
    При получении имени у объекта типа "File".
     
  10. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    вот так это можно обойти:
    Код (Text):
    1. ThreadProc Proc lp:DWORD
    2.  invoke GetFileType, lp
    3.  ret
    4. ThreadProc EndP
    5.  
    6. NTObjectFile Proc uses ebx hHandle: DWORD
    7.  lea eax, ThreadProc
    8.  invoke CreateThread, 0, 0, eax, hHandle, 0, 0
    9.  xchg ebx, eax
    10.  invoke WaitForSingleObject, ebx, 20
    11.  .IF eax == STATUS_TIMEOUT
    12.   invoke ZwTerminateThread, ebx, 0
    13.   invoke ZwClose, ebx
    14.   xor eax, eax
    15.   ret
    16.  .ENDIF
    17.  invoke ZwClose, ebx
    18.  xor eax, eax
    19.  inc eax
    20.  ret
    21. NTObjectFile EndP
     
  11. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    На страничке http://twister.orgfree.com/sources/index.php можно слить файл handles_vb_practicum.rar - когда-то писал статью для VBStreets, это приложение к ней. В архиве есть пример реализующий все что нужно автору (включая обход зависона на NtQueryObject). Сам код на VB, а библиотека, получающая имя объекта по хэндлу - на МАСМе...