Обнаружение доступа к папке в Objective C или C ++ в OSX (как команда fs_usage)
Я работаю над антивирусным сканером в реальном времени на OSX. Команда командной строки OSXfs_usage
может использоваться для определения доступа к папке следующим образом (и может быть запущен только от имени пользователя root):
fs_usage -w -f pathname | grep '/Users/.*/Documents\|/Users/.*/Downloads' | grep mds
Затем просто отсканируйте строку, содержащую фразу:
open
(4 пробела впереди, 4 пробела после)
Это будет излучаться при загрузке файла в папку «Документы» или «Загрузки». Затем вы можете сделать хеш файла (лучше всего sha256) и использовать базу данных SQLite, чтобы проверить, сканировали ли вы этот файл ранее или нет. Если нет, то вы можете отсканировать этот файл.
Ладно, это интересно, но как C ++ или Objective C способ определить такой доступ к папке? Я имею в виду, конечно,fs_usage
Команда использует какой-то API для этого, верно?
Я думаю, что есть одна подсказка:API событий файловой системы Apple, Однако я просто не совсем понял это из примеров, приведенных для моего конкретного сценария.