Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> кто пытается удалить мой файл 
:(
    Опции темы
AHTOLLlKA
  Дата 22.5.2009, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 18.10.2007

Репутация: нет
Всего: нет



всем привет, суть такая:

моя программа использует временный файл c:\temp\12312.tmp

и какойто сторонний процес пытается его открыть, изменить, удалить.

как определить что за процес это делает ??
PM MAIL ICQ   Вверх
Alexeis
Дата 22.5.2009, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



Цитата(AHTOLLlKA @  22.5.2009,  12:47 Найти цитируемый пост)
как определить что за процес это делает ?? 

Может антивирус?


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
SneG0K
Дата 22.5.2009, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



Цитата(Alexeis @  22.5.2009,  13:00 Найти цитируемый пост)
Может антивирус? 

Не всегда обязательно. Может это пользователь удаляет...
AHTOLLlKA, как узнать, не знаю, но могу тебе предложить права выставить...
PM WWW Skype   Вверх
Alexeis
Дата 22.5.2009, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



  В данной конкретной ситуации можно посмотреть программой Unlocker. Запретить чтобы другие не лазили можно выставив флаг fmOpenShareExclusive при открытии или создании файла (CreateFile, TFileStream, OpenFile). И еще момент, если нужно сгенерировать уникальное имя для временного файла, то лучше воспользоваться функцией GetTempFileName


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
AHTOLLlKA
Дата 22.5.2009, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 18.10.2007

Репутация: нет
Всего: нет



Цитата(Alexeis @ 22.5.2009,  14:00)
Цитата(AHTOLLlKA @  22.5.2009,  12:47 Найти цитируемый пост)
как определить что за процес это делает ?? 

Может антивирус?

нет, антивируса нету, ни фаеров ни каких других сторонних "предметов" которые могут помешать

файл создан мной, и заблокирован

Код

procedure TForm1.Button1Click(Sender: TObject);
var FS: TFileStream;
begin
  FS:=TFileStream.Create('c:\1.txt', fmOpenRead, fmShareDenyNone);
end;


и я его открываю блокнотом, вот ерально ли отследить в моей программе что файл, который я держу, пытаеться открыть блокнто ?
PM MAIL ICQ   Вверх
Alexeis
Дата 22.5.2009, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



чтобы запретить нужно сделать 
Код

FS:=TFileStream.Create('c:\1.txt', fmOpenRead or fmOpenShareExclusive);

  Определить реально, в худшем случае можно поставить хук на апи функцию, но думаю что ID процесса получить можно (забыл название функции), затем перечисляя процессы выяснить кому принадлежит.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
AHTOLLlKA
Дата 22.5.2009, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 18.10.2007

Репутация: нет
Всего: нет



Цитата(Alexeis @  22.5.2009,  14:15 Найти цитируемый пост)
  Определить реально, в худшем случае можно поставить хук на апи функцию, но думаю что ID процесса получить можно (забыл название функции), затем перечисляя процессы выяснить кому принадлежит.


хук к сожалению не вариант ибо метод через чур....


вот в идеале получить pid процесса....
PM MAIL ICQ   Вверх
Alexeis
Дата 22.5.2009, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



Цитата(AHTOLLlKA @  22.5.2009,  13:19 Найти цитируемый пост)
вот в идеале получить pid процесса.... 

  Гм.. чуток погуглил есть функция FsRtlAreThereCurrentFileLocks, FsRtlGetNextFileLock, но все это пашет только в kernel mode. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
AHTOLLlKA
Дата 22.5.2009, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 18.10.2007

Репутация: нет
Всего: нет



Цитата(Alexeis @  22.5.2009,  15:05 Найти цитируемый пост)
  Гм.. чуток погуглил есть функция FsRtlAreThereCurrentFileLocks, FsRtlGetNextFileLock, но все это пашет только в kernel mode. 

хм.. почемуто мне кажется что это нето, он определит заблокирован файл или нет вроде как..

вот нашел ReadDirectoryChangesW
в принцыпе подойдет для слежения за файлом...
но по нему не узнать кто изменяет файл...
PM MAIL ICQ   Вверх
Alexeis
Дата 22.5.2009, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



Цитата(AHTOLLlKA @  22.5.2009,  14:21 Найти цитируемый пост)
хм.. почемуто мне кажется что это нето, он определит заблокирован файл или нет вроде как..

  Можно узнать зачем это вообще надо? Может есть более простое решение? На счет программ я почитал про 3 аналога, все имеют драйвер в режиме ядра, у одной дополнительно еще хук.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
AHTOLLlKA
Дата 22.5.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 18.10.2007

Репутация: нет
Всего: нет



я хотел написать мини тулзу которая будет следить за важными файлами, и при попытке кого либо изменить или удалить их... оповещал бы...


PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0565 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.