Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2014, 23:19   #1
stasa9711
Форумчанин
 
Регистрация: 01.10.2012
Сообщений: 106
По умолчанию Мониторинг файловой стистемы

Всем доброго дня, у меня такой вопрос назрел, а как запретить действия в файловой системе чужой программе ?

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

Насчет того, что делает программа можно выяснить функцией ReadDirectoryChangesW буду мониторить файловую систему, но как мне запретить создавать/читать/ удалять и т.д в этой системе ? Подскажите пожалуйста
stasa9711 вне форума Ответить с цитированием
Старый 21.06.2014, 00:13   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Ну варианта всего 2:
1. Написание драйвера ядра, который будет это тотально контролировать.
2. Написание системной библиотеки перехватывающей все файловые операции в отношении какого-то пути. В этом случае все равно вашу защиту смогут обойти если очень понадобится.
Человек_Борща вне форума Ответить с цитированием
Старый 21.06.2014, 00:32   #3
stasa9711
Форумчанин
 
Регистрация: 01.10.2012
Сообщений: 106
По умолчанию

ммм, а есть ли какие-то примеры или статьи ?
stasa9711 вне форума Ответить с цитированием
Старый 21.06.2014, 00:59   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Развлекайтесь.... http://habrahabr.ru/post/178393/ Если где-то и было что-то о хуках, то здесь описано чуть более чем полностью ВСЕ.
В вашей задаче перехват API нужен будет в 2х вариантах:
1. Ловлл статических библиотек
2. Экзотика. Мало ли динамически подгрузят

Последний раз редактировалось Человек_Борща; 21.06.2014 в 01:04.
Человек_Борща вне форума Ответить с цитированием
Старый 21.06.2014, 10:42   #5
stasa9711
Форумчанин
 
Регистрация: 01.10.2012
Сообщений: 106
По умолчанию

т.е в статье меня должно заинтересовать "8. Внедрение библиотеки через установку ловушки." и "9. Внедрение библиотеки через создание нити в удаленном процессе."

еще накопал, то вот эти процедуры
C:\Program Files\Borland\Delphi7\Demos\ActiveX \ShellExt\copyhook.dpr
C:\Program Files\Borland\Delphi7\Demos\ActiveX \ShellExt\CopyHk.pas

встроены в делфи и могут перехватывать файловые операции в проводнике. Есть у кого-то 7 делфи ? можете отправить мне эти файлы ? взглянуть хочется + знает кто то как их использовать ?
stasa9711 вне форума Ответить с цитированием
Старый 21.06.2014, 10:57   #6
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от stasa9711 Посмотреть сообщение

встроены в делфи и могут перехватывать файловые операции в проводнике. Есть у кого-то 7 делфи ? можете отправить мне эти файлы ? взглянуть хочется + знает кто то как их использовать ?
У меня есть. Вся папка архивом во вложение.
Вложения
Тип файла: rar ShellExt.rar (8.5 Кб, 4 просмотров)
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 21.06.2014, 13:19   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
встроены в делфи и могут перехватывать файловые операции в проводнике.
Операции выполняемые пользователями. Т.е. программный доступ куда-то по прежнему открыт.
Человек_Борща вне форума Ответить с цитированием
Старый 21.06.2014, 17:12   #8
stasa9711
Форумчанин
 
Регистрация: 01.10.2012
Сообщений: 106
По умолчанию

жаль, я уж обрадовался ... может кто то может тыкнуть носом в пример ? погуглил, заметил, что и другие юзеры задавались этим вопросом, но так и не пришли к ответу
stasa9711 вне форума Ответить с цитированием
Старый 21.06.2014, 17:15   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Я вам целую статью дал по перехвату API. Там же и примеры. Да ещё и на Delphi!
Человек_Борща вне форума Ответить с цитированием
Старый 21.06.2014, 17:37   #10
stasa9711
Форумчанин
 
Регистрация: 01.10.2012
Сообщений: 106
По умолчанию

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

Насчет внедрения библиотеки через установку ловушки :
Код:
program hook_loader;
 
{$APPTYPE CONSOLE}
 
uses
  Windows;
 
var
  hLib: THandle;
  HookProcAddr: Pointer;
  HookHandle: HHOOK;
begin
  hLib := LoadLibrary('hook_splice_lib.dll');  // тут, я так понимаю, наша библиотека
  try
    HookProcAddr := GetProcAddress(hLib, 'HookProc');
    Writeln('MessageBoxA intercepted, press ENTER to resume...');
    HookHandle := SetWindowsHookEx(WH_GETMESSAGE, HookProcAddr, hLib, 0);
    Readln;
    UnhookWindowsHookEx(HookHandle);
  finally
    FreeLibrary(hLib);
  end;
end.
но где указать куда она должна внедрятся ? тобишь в какую программу ? + еще как я понял, она внедряется во все библиотеки программы , но как ей казать, что нужно делать? (в моем случаи нужно блокировать все действия с файловой системой) или это нужно указать в самой библиотеке hook_splice_lib ?
Разъясните пожалуйста если не трудно
stasa9711 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка файловой системы Vadik4 Общие вопросы Delphi 1 08.06.2014 17:55
удаление файловой ссылки _Bers Общие вопросы C/C++ 5 02.04.2014 18:23
Драйвер файловой системы vedro-compota Общие вопросы C/C++ 2 26.01.2012 21:50
Устройство файловой системы Alexandr-vi-92 Операционные системы общие вопросы 2 06.11.2008 08:14