Пытаюсь скрыть пару папок на диске с помошью NtQueryDirectoryFile. Прочитал статьи Ms Rem'a и Holy_father'а. Функцию перехватваю, проблема возникает когда делаю lstrcmpiw(Tkb^.FileName, somename) и при вызове NtQueryDirectoryFile любая програма падает. До этого выводил Tkb^.FileNameLength, все нормально, но только пытаюсь вывести Tkb^.FileName, все рушится. Подскажите в чем моя ошибка.
Может быть не тот FileInformationClass обраратываешь. А что отладчик показывает, если перед lstrcmpiw(Tkb^.FileName, somename)встать.
Ну пока сколько пробовал происходит обработка этой стурктуры. 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 не могу определить где моя библиотека.
Думаю не стоит полагаться, что все вызовы будут с таким класом. На счёт отладчика. Обзаведись сайсом. В ольке можно сделать так: 1. Поставь в настройках остановку по int 3 2. поставь перед вызовом lstrcmpiw int 3. Потом перехвати NtQueryDirectoryFile в своём процессе. Потом вызови её. Остановишься на int 3. А можно ли сделать так, чтобы олька сама оттачилась к процессу в котором поизошло int 3?
Странно, раньше не хотела аттачиться автоматически по int 3, а сейчас приаттачилась. Так что CikloP делай ольку just-in-time debugger ставь int 3 breaks. И расставляй int 3 там, где вздумается.