Квота на чтение/запись
От: CEMb  
Дата: 24.10.11 02:12
Оценка:
Добрый день!

Можно как-то чем-то ограничить объём читаемой-записываемой процессом информации на диск?
Re: Квота на чтение/запись
От: 5er Россия  
Дата: 25.10.11 06:45
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Добрый день!


CEM>Можно как-то чем-то ограничить объём читаемой-записываемой процессом информации на диск?


Например, хук на ZwReadFile/ZwWriteFile, в котором реализовать требуемые правила ограничения.
Re[2]: Квота на чтение/запись
От: CEMb  
Дата: 25.10.11 06:54
Оценка:
Здравствуйте, 5er, Вы писали:

CEM>>Можно как-то чем-то ограничить объём читаемой-записываемой процессом информации на диск?


5er>Например, хук на ZwReadFile/ZwWriteFile, в котором реализовать требуемые правила ограничения.


Это всмысле, перехват вызова? ZwReadFile/ZwWriteFile — это низкоуровневые недокументированные функции?
Re[3]: Квота на чтение/запись
От: 5er Россия  
Дата: 25.10.11 07:10
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Здравствуйте, 5er, Вы писали:


CEM>>>Можно как-то чем-то ограничить объём читаемой-записываемой процессом информации на диск?


5er>>Например, хук на ZwReadFile/ZwWriteFile, в котором реализовать требуемые правила ограничения.


CEM>Это всмысле, перехват вызова? ZwReadFile/ZwWriteFile — это низкоуровневые недокументированные функции?


Да, перехват вызова.
Функции, на самом деле, давно уже документированы.
Re[4]: Квота на чтение/запись
От: CEMb  
Дата: 25.10.11 13:17
Оценка:
Здравствуйте, 5er, Вы писали:

CEM>>>>Можно как-то чем-то ограничить объём читаемой-записываемой процессом информации на диск?


5er>>>Например, хук на ZwReadFile/ZwWriteFile, в котором реализовать требуемые правила ограничения.


CEM>>Это всмысле, перехват вызова? ZwReadFile/ZwWriteFile — это низкоуровневые недокументированные функции?


5er>Да, перехват вызова.


А есть хотя бы схематический примерчик с ключевыми функциями?

5er>Функции, на самом деле, давно уже документированы.
Re: Квота на чтение/запись
От: dcb-BanDos Россия  
Дата: 25.10.11 13:58
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Добрый день!


CEM>Можно как-то чем-то ограничить объём читаемой-записываемой процессом информации на диск?


ограничить байты в секунду или байты?
Ничто не ограничивает полет мысли программиста так, как компилятор.
Re: Квота на чтение/запись
От: okman Беларусь https://searchinform.ru/
Дата: 25.10.11 14:34
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Добрый день!


CEM>Можно как-то чем-то ограничить объём читаемой-записываемой процессом информации на диск?


Что значит "информация, записываемая процессом на диск" ?
С файлами все понятно. Хотя не очень — временные файлы учитывать ? А файловый кэш ?
А если приложение выделяет память, которая удовлетворяется из файла подкачки ?
С чтением вообще темный лес. В смысле — критерии "чтения" очень размыты.

ZwReadFile/ZwWriteFile, кстати, работают [далеко] не только с файлами.
Короче, надо ждать пока в тему заглянет x64 и даст какой-нибудь толковый совет.
Re[5]: Квота на чтение/запись
От: 5er Россия  
Дата: 25.10.11 14:44
Оценка:
Здравствуйте, CEMb, Вы писали:

5er>>Да, перехват вызова.


CEM>А есть хотя бы схематический примерчик с ключевыми функциями?


В инете есть примеры. Как-то хитро они ищутся, но есть ибо малварно-хакерская техника, особенно под винду старше чем XP.
На форуме, например, есть статья
Автор(ы): Тихомиров В.А.
Дата: 11.11.2002
.
Для ознакомления с принципом работы сойдет.

Вообще, м.б. стоит пересмотреть бизнес логику приложения. Если нужен мониторинг работы с диском, то писать/читать на диск нужно
через свой компонент, в котором реализован соответствующий манеджер.

Перехват api-вызовов хорош для тестирования, когда нужно зафейлить системный вызов в готовом приложении и посмотреть реакцию.
Или залоггировать те же вызовы.

Так что если не пишите свой FileMon, то в такие дебри лезть не стоит ради сомнительного функционала.
Re[2]: Квота на чтение/запись
От: ononim  
Дата: 25.10.11 14:50
Оценка: :)))
O>ZwReadFile/ZwWriteFile, кстати, работают [далеко] не только с файлами.
O>Короче, надо ждать пока в тему заглянет x64 и даст какой-нибудь толковый совет.
я даже знаю какой это будет совет
Как много веселых ребят, и все делают велосипед...
Re[2]: Квота на чтение/запись
От: CEMb  
Дата: 25.10.11 15:31
Оценка:
Здравствуйте, dcb-BanDos, Вы писали:

DB>ограничить байты в секунду или байты?


Байты в секунду. Ну или в минуту Короче, в единицу времени
Re[3]: Квота на чтение/запись
От: CEMb  
Дата: 25.10.11 15:34
Оценка:
Здравствуйте, ononim, Вы писали:

O>>ZwReadFile/ZwWriteFile, кстати, работают [далеко] не только с файлами.

O>>Короче, надо ждать пока в тему заглянет x64 и даст какой-нибудь толковый совет.
O>я даже знаю какой это будет совет
Я тоже, у меня его аська есть, уже как-то чё-то спрашивал
Я думаю, он посоветует написать драйвер, но что-то мне неохота писать драйвер, потому что под 7-ку его подписывать надо, а во-вторых, я не умею писать драйвера. Апишные перехваты я хоть делал немного
Re: Квота на чтение/запись
От: Pavel Dvorkin Россия  
Дата: 25.10.11 15:42
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Добрый день!


CEM>Можно как-то чем-то ограничить объём читаемой-записываемой процессом информации на диск?


Я что-то постановку задачи не пойму. Ограничимся простым примером — идет WriteFile в один файл.
Что ты хочешь — чтобы один вызов прошел, а второй дал отказ ? И что потом ?

ИМХО ограничивать надо просто задержками между записью в своей программе.
With best regards
Pavel Dvorkin
Re[6]: Квота на чтение/запись
От: CEMb  
Дата: 25.10.11 15:43
Оценка:
Здравствуйте, 5er, Вы писали:

CEM>>А есть хотя бы схематический примерчик с ключевыми функциями?


5er>В инете есть примеры. Как-то хитро они ищутся, но есть ибо малварно-хакерская техника, особенно под винду старше чем XP.

5er>На форуме, например, есть статья
Автор(ы): Тихомиров В.А.
Дата: 11.11.2002
.

5er>Для ознакомления с принципом работы сойдет.
Ага, читал, делал перехват через таблицу импорта.
Интересен был инжект в чужой процесс через LoadLibrary с последующим перехватом.

5er>Вообще, м.б. стоит пересмотреть бизнес логику приложения. Если нужен мониторинг работы с диском, то писать/читать на диск нужно

5er>через свой компонент, в котором реализован соответствующий манеджер.
Ага, я тоже так считаю Но фирма-автор сего "шедевра" настолько большая и опупенная, что меня просто нафиг пошлют с такими идеями
Не_пользоваться их софтом я не могу по ряду причин, в подробности вдаваться не буду

5er>Перехват api-вызовов хорош для тестирования, когда нужно зафейлить системный вызов в готовом приложении и посмотреть реакцию.

О, интересная идея. А насколько это актуально бывает? Ну и фэйл фэйлу — рознь. Да и зафэйлить можно без перехвата — стек сломать/забить

5er>Или залоггировать те же вызовы.


5er>Так что если не пишите свой FileMon, то в такие дебри лезть не стоит ради сомнительного функционала.

Между делом: API-Mon хочу написать, но это уже другая песня
Re[7]: Квота на чтение/запись
От: okman Беларусь https://searchinform.ru/
Дата: 25.10.11 16:57
Оценка:
Здравствуйте, CEMb.

Мне вот интересно — неужели для решения данной задачи нельзя обойтись встроенными
средствами безопасности Windows, дисковыми квотами NTFS, наконец ?..
Или хотя бы как-то извратиться, запуская программу из-под специально настроенной
учетной записи с такими квотами ?
Что, без тяжелой артиллерии вроде файловых драйверов никуда ?
Re: Квота на чтение/запись
От: x64 Россия  
Дата: 25.10.11 18:12
Оценка:
CEM>Можно как-то чем-то ограничить объём читаемой-записываемой процессом информации на диск?

Тебе надо именно квоту или регулирование пропускной способности?
Re[2]: Квота на чтение/запись
От: x64 Россия  
Дата: 25.10.11 18:15
Оценка: :))) :)
O>Короче, надо ждать пока в тему заглянет x64 и даст какой-нибудь толковый совет.



Я здесь и готов помочь обездоленным!
Re[3]: Квота на чтение/запись
От: okman Беларусь https://searchinform.ru/
Дата: 25.10.11 18:34
Оценка:
Здравствуйте, x64, Вы писали:

O>>Короче, надо ждать пока в тему заглянет x64 и даст какой-нибудь толковый совет.


x64>


x64>Я здесь и готов помочь обездоленным!


Если что — я тут так, мимо проходил...
Re[8]: Квота на чтение/запись
От: CEMb  
Дата: 26.10.11 02:54
Оценка:
Здравствуйте, okman, Вы писали:

O>Мне вот интересно — неужели для решения данной задачи нельзя обойтись встроенными

O>средствами безопасности Windows, дисковыми квотами NTFS, наконец ?..
Это где настраивается? Если возможно, то, конечно, лучше такое решение.

O>Или хотя бы как-то извратиться, запуская программу из-под специально настроенной

O>учетной записи с такими квотами ?
Вот тут не получится... программа запускается службой, и нет доступа (и не будет).

O>Что, без тяжелой артиллерии вроде файловых драйверов никуда ?

Драйвера тоже не пойдут, потому что на 7-ке подпись нужна.
Re[2]: Квота на чтение/запись
От: CEMb  
Дата: 26.10.11 03:06
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

CEM>>Можно как-то чем-то ограничить объём читаемой-записываемой процессом информации на диск?


PD>Я что-то постановку задачи не пойму. Ограничимся простым примером — идет WriteFile в один файл.

PD>Что ты хочешь — чтобы один вызов прошел, а второй дал отказ ? И что потом ?
Хочу делать паузы между обращениями к диску на чтение/запись.

PD>ИМХО ограничивать надо просто задержками между записью в своей программе.

Да не моя это программа. Есть программа, которая своим мамонтячьим обращением к диску вешает напрочь всю систему. Убить её нельзя, остановить тоже, хочется её притормозить именно на тему I/O
Re[2]: Квота на чтение/запись
От: CEMb  
Дата: 26.10.11 03:12
Оценка:
Здравствуйте, x64, Вы писали:

CEM>>Можно как-то чем-то ограничить объём читаемой-записываемой процессом информации на диск?


x64>Тебе надо именно квоту или регулирование пропускной способности?


Вобщем, есть программа, которая читает пишет гигабайтами с места на место. Можно как-то сделать так, чтобы между обращениями к диску делать паузы? Я сейчас ProcMon открыл, посмотрел, там все программы пишут/читают по смещению и порциями. Вот если бы можно было бы для the программы после каждой записи делать Sleep(20) — было бы чудно (наверно/надеюсь)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.