![]() |
|
Модераторы: 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. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |