Воскресенье, 22.12.2024, 07:16 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: xXxSh@dowxXx, Anton93, Волк-1024  
Перехват действий с файлом
HargenДата: Вторник, 17.12.2013, 15:32 | Сообщение # 1
Участник
Зарегистрирован: 08.05.2013
Группа: Пользователи
Сообщений: 66
Статус: Offline
в директории filepath есть фаилы типа filename.ext
к ним обращается proga.exe и пишет/читает из них данные, создает их и удаляет
Идея такая : перехватить все действия этой программы с файлами и поддерживать их в памяти для ускорения работы проги, Т.Е. она будет работать с буферризоваными файлами сама того не ведая, что должно повысить производительность.
По ходу дела можно будет изучить что и как она с ними делает.

Как лучше это реализовать?


Главное - не изобретать велосипед

 
Волк-1024Дата: Вторник, 17.12.2013, 18:01 | Сообщение # 2
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
Перехватываешь нативные функции из ntdll.dll по работе с файлами, то есть NtReadFile, NtWriteFile и т.д. А вот дальше, как ты будешь соотносить буферезированный файл и настоящий файл - это уже будет твой полёт фантазии. Я, например, сделал бы таблицу соответствии имени файла и участка памяти. То есть, если программа захочет прочитать файл 1.txt, то она обратится к жесткому диску, а так как функции по работе с файлами будут перехвачены, мы просто подставим для чтения\записи нужное количество байт.

Pascal, C\C++, Assembler, Python
 
Anton93Дата: Вторник, 17.12.2013, 21:42 | Сообщение # 3
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
Волк-1024, если не ошибаюсь, чтобы их перехватить надо написать библиотечку, которую надо подбросить во все процессы, ну в ней хук соответственно на нужные функции

ICQ: 41896
 
Волк-1024Дата: Вторник, 17.12.2013, 23:34 | Сообщение # 4
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
Зачем во все процессы-то? На сколько я понял, тут требуется перехват только в одном процессе.

Pascal, C\C++, Assembler, Python
 
Anton93Дата: Вторник, 17.12.2013, 23:40 | Сообщение # 5
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
Цитата
Зачем во все

тьфу блин) по привычке написал. обычно когда перехватываю, то во все гружусь, а тут немного другое


ICQ: 41896
 
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz