Форум программистов, компьютерный форум CyberForum.ru

Существует ли возможность перехватить файловые операции? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
NetMinon
0 / 0 / 0
Регистрация: 16.12.2006
Сообщений: 88
14.12.2007, 02:49     Существует ли возможность перехватить файловые операции? #1
Профи, вопрос для вас!!!)
Существует ли возможность перехватить файловые операции (копирование, создание, удаление, итд)?
например: 'Отследить все скопированые файлы за неделю' или 'перехватить и запретить перезапись определенного файла'
как я понял ICopyHook дает возможность перехватить оперции только над папками..(а жаль)...
помогите плз))))
Зарание благодарен - Роман
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2007, 02:49     Существует ли возможность перехватить файловые операции?
Посмотрите здесь:

Файловые операции C++
C++ Файловые потоки
Файловые потоки C++
файловые переменные C++
Файловые операции 2-ого уровня сложности. C++
C++ Файловые потоки
файловые потоки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pwa
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 35
17.12.2007, 10:55     Существует ли возможность перехватить файловые операции? #2
Есть у меня исходник программы Virtual Cage - фиксирует практически все действия прикладной программы. Жаль, на немецком, трудно настроить.
Написана на VC (DLL) и Delphi (пользовательский интерфейс). Могу послать.
NetMinon
0 / 0 / 0
Регистрация: 16.12.2006
Сообщений: 88
19.12.2007, 20:33  [ТС]     Существует ли возможность перехватить файловые операции? #3
скс, если есть возможность обязательно вышли...
NetMinion@narod.ru
заранее благодарен
pwa
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 35
20.12.2007, 12:21     Существует ли возможность перехватить файловые операции? #4
Выслал два архива 'как есть'.
Если получится что-нибудь интересное, буду благодарен за информацию.
Например, обман программы - реботает с некоторым обьектом (файл, канал связи), а на самом деле ее действия проходят через некоторый фильтр. И т.п.
NetMinon
0 / 0 / 0
Регистрация: 16.12.2006
Сообщений: 88
20.12.2007, 22:54  [ТС]     Существует ли возможность перехватить файловые операции? #5
м да((( код писался емто ну очень умным....((
я ниче не понял, хотя пытался... если есть профи которые в остоянииразобраться, и у них есть желание... то могу выслать файлы...
заранее скс
ioka
0 / 0 / 0
Регистрация: 17.10.2007
Сообщений: 16
23.12.2007, 01:36     Существует ли возможность перехватить файловые операции? #6
Пришлите пожалуйста исходные файлы мне
NetMinon
0 / 0 / 0
Регистрация: 16.12.2006
Сообщений: 88
23.12.2007, 13:45  [ТС]     Существует ли возможность перехватить файловые операции? #7
выслал...
если разберешься напиши плз...
ioka
0 / 0 / 0
Регистрация: 17.10.2007
Сообщений: 16
03.01.2008, 05:55     Существует ли возможность перехватить файловые операции? #8
посмотрел я программу, эта программа описанна в одном немецком журнале C'T 10,11 2001.
Стать есть у меня но только в бумажной форме на немецком языке.

Это DLL которая через CBT Hook , другой вариант через Registry, загружается в каждый процесс, и заменяет в нём адреса некоторых импортированных функций на собственные Stubs , теперь когда процесс вызывает какую нибудь импортированную функцию, управление передаётся в собственный Stub.

что интересует конкретно ?
NetMinon
0 / 0 / 0
Регистрация: 16.12.2006
Сообщений: 88
06.01.2008, 03:29  [ТС]     Существует ли возможность перехватить файловые операции? #9
а какие конкретно функции она заменяет, и как она собственно заменяет?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2008, 05:15     Существует ли возможность перехватить файловые операции?
Еще ссылки по теме:

Файловые потоки C++
C++ Файловые функции
C++ Файловые потоки в Си и С++
Файловые операции: генерировать файл, читать, редактировать, записывать C++
C++ Существует ли в C++ такая возможность()

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ioka
0 / 0 / 0
Регистрация: 17.10.2007
Сообщений: 16
07.01.2008, 05:15     Существует ли возможность перехватить файловые операции? #10
1. Список перехватываемых функций см. intercept.c array __FunctionList

2. В каждом модуле в Task т.е. exe и dlls есть импорт таблицы в которые при загрузке модуля память записываются адреса функций вызываемых в данном модуле но находящихся в других dll.

Как добраться до этих таблиц - см. в intercept.c функции InterceptFunctionsInModule (настройка адресов одного модуля) и InterceptFunctionsInTask (вызывает InterceptFunctionsInModule для всех модулей в Task)

Импорт таблицы содержаться в .idata section. доступ к этой секции через заголовок PE файла, заголовок
PE файла одинаков на диске и в памяти. Basis address dll это Instance Handle.

Замена статически линкованных dlls и exe происходит при загрузке dll перехвата vc1.dll в адресное пространство процесса(в качестве hook dll).
Динамически загруженные dlls заменяются в функции перехвата LoadLibrary и LoadLibraryEx поэтому эти фукции должны всегда перехватываться.

Кстати, см статью http://rsdn.ru/qna/?baseserv/hookapi.xml
Yandex
Объявления
07.01.2008, 05:15     Существует ли возможность перехватить файловые операции?
Ответ Создать тему
Опции темы

Текущее время: 00:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru