• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

  • Автор темы 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. Но вот заработало оно только тогда когда я вставил это определение в свойства проэкта.
 
Мы в соцсетях:

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