• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Как заставить систему оповещать приложение об изменении содержимого ко

  • Автор темы Normann
  • Дата начала
N

Normann

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

zubr

Не понял, что значит не обращаться к диску (разве такое возможно?) и не устраивать ручное сравнение содержимого в цикле.
Данная задача решается примерно так:
1. По событию обращения к файлу или по таймеру читаем файл в буфер (если файл большой, то делим его на части).
2. Считаем контрольную сумму (есть много известных алгоритмов контрольной суммы) буфера или буферов (для большого файла).
3. Сравниваем контрольные суммы - правильную с полученной.
 
G

gamecreator

а если прочитать дату изменения?
 
Z

zubr

gamecreator
А что мешает при изменении файла программно оставить дату прежней?
 
P

Pasha

Normann
Если система - винда, то можно мониторить папку через FindFirstChangeNotification или ReadDirectoryChangesW.
 
G

gamecreator

gamecreator
А что мешает при изменении файла программно оставить дату прежней?
я не знаком именно с этим вопросом, но по-моему это уже умышленное действие (т.е. обычно проги такого не делают). или я не прав?
 
N

Normann

Если система - винда, то можно мониторить папку через FindFirstChangeNotification или ReadDirectoryChangesW
Дело в том что FindFirstChangeNotification "следит" за целым каталогом, а для моего контекста это не подходит, а с ReadDirectoryChangesW я еще не знаком т.к. мне моя среда пишет про нее типа undeclared identifer хотя все условия довлетворяют требованиям описаным в мсдне (WinDef.h Win2k pro). Поэтому скажите ReadDirectoryChangesW покажет мне имя измененного файла?
 
I

Igorg

моя среда пишет про нее типа undeclared identifer хотя все условия довлетворяют требованиям описаным в мсдне
Может, надо определить _WIN32_WINNT >= 0x0400 перед включением <windows.h>? Этот макрос по умолчанию не определен...
 
N

Normann

Определение _WIN32_WINNT >= 0x0400 я уже в код вставлял, все равно не поомгало, куда я его только не в ставлял, даже в сам WinBase.h. Но вот заработало оно только тогда когда я вставил это определение в свойства проэкта.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!