![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Coocky |
|
||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Привет!
Есть такая ситуация. Нужно отловить комбинацию флагов,когда файл открывается на запись. Никак не получается. Для функции
не работает,к примеру в Фаре по нажатию F4 такой код
Может кто подскажет правильные флаги,комбинацию которых надо проверить, что б узнать, что файл может открываться для записи Спасибо -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
||||
|
|||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 27 Всего: 158 |
||||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Не попадаю ни в один блок при отладке. То же самое, к примеру, и с блокнотом ,при сохранении. uCreateDisposition приходит с флагом FILE_OPEN Ну и что делать? -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 27 Всего: 158 |
ты б хоть привел значение AccessMask
![]() |
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Coocky, для начала покажи ты получаешь uCreateDisposition и AccessMask.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
Coocky |
|
||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Смотрел через FileSpy-действительно Фар записывает через F2 с флагами, в которых одним является FILE_WRITE_DATA. Но я не попадаю в блок
Вообще в никакие не попадаю ![]() Вот при сохранении по F2 такое значение- AccessMask=1074790528 (hex 0x40100080) У меня определено #define FILE_WRITE_DATA ( 0x0002 )
Как и все-методом перехвата функции. ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
||||
|
|||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Код?
Т.е. один вызов NtCreateFile и разные значения AccessMask у тебя и в FileSpy? -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Да ну перестань. Сейчас возьму и всю либу брошу сюда ![]() Там с перехватом все ок. Все флаги нормальные.
Похоже, что да. -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Ну давай тогда спишем всё на FileSpy, ибо из двух программ одна работает не верно, но т.к. ты уверен, что твоя работает верно, стало быть Far Manager просто нагло обманывает FileSpy, а сам на самом деле юзает порты IO для записи в файл. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
Coocky |
|
||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Ну так а что-обвинить Detours ? ![]() Что тебе -сюда код перехвата выложить? Ну лови,найди ошибку
![]() Замечу, что все работает во многих приложениях нормально.И ВСЕ совпадает, кроме маски доступа. Ты просил код? Вот тебе код ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
||||
|
|||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Встречал я такого зверя, не помню правда, толи это был Trojan.Downloader толи Bot.DDOS/Socks. Я надеюсь не ты автор? ![]() Ага, благодарю за одолжение ![]() Собственно, я вообще не знаю чего тут репу чесать, у тебя AccessMask_i = 0x40100080, а FILE_WRITE_DATA = 0x0002. С чего условие выполниться должно? ![]() Я б на твоём месте подключился к FAR'у, в который уже внедрена DLL, отладчиком и поставил бряк на CreateFile и протрейсил бы всё это дело внимательно анализирую параметры, ибо это гадание на кофейной гуще ни к чему не приведёт. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
dumb |
|
||||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 27 Всего: 158 |
прошу пардона за небольшой увод в сторону. GENERIC_xxx - это отдельные флаги, которые "превращаются"(где-то там "внутрях") в комбинации флагов согласно типам объектов.
посему проверять надо как-то так:
GENERIC_WRITE | SYNCHRONIZE | FILE_READ_ATTRIBUTES. GENERIC_WRITE вроде как содержит SYNCHRONIZE, так что зачем он тут - ![]()
![]() |
||||
|
|||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
dumb, хм.. Мне понравилась твоя мысль. Только не могу за нее толком зацепится
Вот что я нашел в описании winnt.h
Хрен его знает,как это мне поможет ![]() ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
dumb, ничего не понимаю, но вот так
работает ![]() Ладно,лови плюс в репу,незнаю чем помог,но на мысль натолкнул ![]() Дальше постараюсь копать сам. W4FhLF, не.Я не пишу трояны.Скорее наоборот-антитроянские программы.Хотя раньше просто интерфейсы для них, теперь-не повезло.Само ядро. ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 27 Всего: 158 |
Access Rights and Access Masks
более правильную проверку я уже изобразил. а вот одолжений мне не нужно делать ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |