Как реализовать, программно слежение за копированием файлов: допустим получить лог: файл A был скопирован на диск D:\ ну и так далее, срочно нужно проверку в компе сделать... Или может кто подскажет исходники, хороших шпионов? Вся надежда на вас ребята, на вашу помошь...
Пишешь драйвер, перехватываешь функции типа CreateFile, MoveFile... Если не хочется драйвер, то можешь сделать дллку в которой тоже реализовать перехват функций и прописать её в AppInit_DLL Примеры всего этого есть в гугле и легко ищутся.
В драйвере достаточно перехватить NtCreateFile, так как любые операции с файлами (и даже драйверами и сервисами) в итоге сводятся туда, насколько помню.
Еще понадобится распознать, создали ли новый файл для того, чтобы скопировать в него другой файл (слежение за копированием файлов). 2 варианта приходит в голову: - сохранять адресы буфферов и их размеры, которые используются в функции NtReadFile и проверять их с теми, что используются в функции NtWriteFile. В большинстве случаев, если адрес и размер совпал, значит происходит копирование, но не всегда; - сохранять список последних закрытых файлов. В момент, когда происходит закрытие еще какого то файла, нужно обратится к этому списку и найти файл, размер которого равняется закрываемому. Если нашли такой файл, то может быть мы нашли 2 одинаковых файла, один из которых недавно скопировали в другой. Нужно сделать дополнительные действия, чтобы убедится в этом (сравнить md5-хеши этих файлов или просто сравнить эти файлы побайтово).