[Python] Перехват операции копирования файлов WINAPI

Discussion in 'Windows' started by notkeo, 6 Mar 2015.

  1. notkeo

    notkeo New Member

    Joined:
    24 Dec 2011
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    Добрый день! Задача следующая - необходимо логировать операции перемещения и копирования файлов в Windows. Если точнее - с жесткого диска на внешние устройства. С перемещением все оказалось просто, поскольку всегда происходит вызов SetRenameInformationFile от копируемого файла с аргументами, содержащими конечный путь (куда скопируем). Хукаем, ловим, пишем в лог. Проблем никаких. С копированием все оказалось намного сложнее. Нет никакой опознавательной функции. Ставил hook на explorer.exe, никаких вызовов FileCopyW или FileCopyEx не происходит, все делается в лоб - читается файл, пишется файл, никаких SetRenameInformationFile и тд. Если есть файл с тем же именем, то заранее создается пустой файл аля document копия(2).doc. Видел Shell Extentions с CopyHook, но там блин ловит только действия с папками, а мне файлы нужны. Безусловно можно отловить запись на внешнее устройство некоторого файла, но как определить, что он с жесткого диска и где он лежит? Там при копировании по 1000 раз происходит чтение всего, что только можно. Может у кого есть идеи?