_FILE_OBJECT вопрос.

Тема в разделе "WASM.WIN32", создана пользователем 0x90, 21 ноя 2006.

  1. 0x90

    0x90 New Member

    Публикаций:
    0
    Регистрация:
    18 мар 2005
    Сообщения:
    5
    Вообщем суть дела такова.
    Есть файл открытый программой на монопольный доступ. Т.е. SharedAcess = 0.
    Есть вторая программа, которой тоже нужно открывать это файл.
    Решил я подкорректировать SharedAccess. Но как то уперся или просто затупил.
    В юзер моуде нахожу дискриптор файла открытого первым процессом.
    Передаю PID и hFile драйверу. Драйвер собственно находит объект ядра, соответствующий этому файлу.
    kd> dt _FILE_OBJECT
    +0x000 Type : Int2B
    +0x002 Size : Int2B
    +0x004 DeviceObject : Ptr32 _DEVICE_OBJECT
    +0x008 Vpb : Ptr32 _VPB
    +0x00c FsContext : Ptr32 Void
    +0x010 FsContext2 : Ptr32 Void
    +0x014 SectionObjectPointer : Ptr32 _SECTION_OBJECT_POINTERS
    +0x018 PrivateCacheMap : Ptr32 Void
    +0x01c FinalStatus : Int4B
    +0x020 RelatedFileObject : Ptr32 _FILE_OBJECT
    +0x024 LockOperation : UChar
    +0x025 DeletePending : UChar
    +0x026 ReadAccess : UChar
    +0x027 WriteAccess : UChar
    +0x028 DeleteAccess : UChar
    +0x029 SharedRead : UChar
    +0x02a SharedWrite : UChar
    +0x02b SharedDelete : UChar
    +0x02c Flags : Uint4B
    +0x030 FileName : _UNICODE_STRING
    +0x038 CurrentByteOffset : _LARGE_INTEGER
    +0x040 Waiters : Uint4B
    +0x044 Busy : Uint4B
    +0x048 LastLock : Ptr32 Void
    +0x04c Lock : _KEVENT
    +0x05c Event : _KEVENT
    +0x06c CompletionContext : Ptr32 _IO_COMPLETION_CONTEXT
    Меняю в объекте SharedRead,SharedWrite,SharedDelete, однако файл по прежнему нельзя открыть на чтение.
    Укажите в какую сторону хоть копать. Пробовал копать в сторону
    IoCreateFile (NTOSKRNL.EXE - iosubs.c) - ObOpenObjectByName (obref.c) - ObpLookupObjectName (obdir.c) - ParseProcedure (ioinit.c) - IopParseDevice (parse.c)
    Но мозг не выдержал 8(. Помогите добрым советом. Пожалуйста.
     
  2. 0x90

    0x90 New Member

    Публикаций:
    0
    Регистрация:
    18 мар 2005
    Сообщения:
    5
    Неужели ни у кого нет даже малейших соображений по этому поводу.
     
  3. fr0b-p

    fr0b-p New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2006
    Сообщения:
    118
    зачем так глубоко? SeRestorePrivilege не достаточно?
     
  4. 0x90

    0x90 New Member

    Публикаций:
    0
    Регистрация:
    18 мар 2005
    Сообщения:
    5
    fr0b-p
    К сожалению имя приложения харанее неизвестно. А писать драйвер-хукер имхо криво решение..