Проблема с перхватом NtQueryDirectoryFile

Тема в разделе "WASM.BEGINNERS", создана пользователем CikloP, 20 май 2006.

  1. CikloP

    CikloP New Member

    Публикаций:
    0
    Регистрация:
    20 май 2006
    Сообщения:
    2
    Адрес:
    Russia
    Пытаюсь скрыть пару папок на диске с помошью NtQueryDirectoryFile. Прочитал статьи Ms Rem'a и Holy_father'а.

    Функцию перехватваю, проблема возникает когда делаю



    lstrcmpiw(Tkb^.FileName, somename)



    и при вызове NtQueryDirectoryFile любая програма падает.



    До этого выводил Tkb^.FileNameLength, все нормально, но только пытаюсь вывести Tkb^.FileName, все рушится.



    Подскажите в чем моя ошибка.
     
  2. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Может быть не тот FileInformationClass обраратываешь.

    А что отладчик показывает, если перед

    lstrcmpiw(Tkb^.FileName, somename)встать.
     
  3. CikloP

    CikloP New Member

    Публикаций:
    0
    Регистрация:
    20 май 2006
    Сообщения:
    2
    Адрес:
    Russia
    Ну пока сколько пробовал происходит обработка этой стурктуры.

    PFILE_BOTH_DIRECTORY_INFORMATION=^FILE_BOTH_DIRECTORY_INFORMATION;

    FILE_BOTH_DIRECTORY_INFORMATION = packed record

    NextEntryOffset: ULONG;

    Unknown: ULONG;

    CreationTime,

    LastAccessTime,

    LastWriteTime,

    ChangeTime,

    EndOfFile,

    AllocationSize: int64;

    FileAttributes: ULONG;

    FileNameLength: ULONG;

    EaInformationLength: ULONG;

    AlternateNameLength: USHORT; (здесь в начале было ULONG)

    AlternateName: array [0..11] of WideChar;

    FileName: PWideChar;

    end;



    Вот с отладчиком есть небольшая загвоздка, нет SoftIce, только OllyDbg, и я не очень хорошо им могу пользоваться.

    Делая bpx lstrcmpiw не могу определить где моя библиотека.
     
  4. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia


    Думаю не стоит полагаться, что все вызовы будут с таким класом.



    На счёт отладчика. Обзаведись сайсом.

    В ольке можно сделать так:

    1. Поставь в настройках остановку по int 3

    2. поставь перед вызовом lstrcmpiw int 3. Потом перехвати NtQueryDirectoryFile в своём процессе. Потом вызови её. Остановишься на int 3.



    А можно ли сделать так, чтобы олька сама оттачилась к процессу в котором поизошло int 3?
     
  5. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Странно, раньше не хотела аттачиться автоматически по int 3, а сейчас приаттачилась. Так что CikloP

    делай ольку just-in-time debugger ставь int 3 breaks.

    И расставляй int 3 там, где вздумается.