Замечайте обращения
Текущее состояние, наблюдение в реальном времени и панель в терминале. Идентификация процесса и контекст — когда система может получить эти сведения.
mcw status --lang ruВаша приватность — понятнее.
Замечайте обращения к устройствам, разбирайтесь в признаках и действуйте с рабочего стола. MicCamWatch наблюдает за метаданными системы — не за вашими разговорами и изображениями.
Windows 10/11 · Linux x64 · macOS 15+
Нативный инструмент · Открытый код · Без телеметрии
Наблюдать без записи
Разобраться, прежде чем действовать
Сохранять локальный контроль
Меньше непрозрачности. Больше контекста.
MCW различает наблюдаемую активность, уровень уверенности и риск. Слабый признак не превращается в достоверный факт.
Текущее состояние, наблюдение в реальном времени и панель в терминале. Идентификация процесса и контекст — когда система может получить эти сведения.
mcw status --lang ruПроцесс, путь, происхождение и проверка доверия в зависимости от ОС. Диагностика также показывает сборщики данных с ограниченной работоспособностью или недоступные сборщики.
mcw doctorОтключение звука, команды камеры и запуск при входе: явные действия, ограниченные тем, что платформа действительно позволяет.
mcw tray
mcw top v0.17.1, запущенного в ConPTY Windows в CI (150 столбцов), затем преобразованный в изображение. У этого runner нет устройств захвата, а состояние отключения звука в SDK неизвестно: снимок демонстрирует интерфейс, а не обнаружение или доказательство блокировки на физическом оборудовании. Все снимки на этой странице сделаны исключительно в Windows.Три ОС — разные возможности
Наблюдение работает без прав администратора. Привилегированные действия требуют отдельного разрешения.
| Система | Микрофон | Камера | Управление и ограничения |
|---|---|---|---|
| Windows 10/11 x64 | Активные сеансы WASAPI; процесс проверяется, когда доступен. | Нативные признаки захвата; определение процесса, когда возможно. Загруженные модули: только «ready». | Отключение звука конечных точек и управление устройствами камеры с UAC. Ручная защита удерживается в фоне до явного снятия; без электрической изоляции и гарантий для эксклюзивных путей/ASIO. |
| Linux x64 · PipeWire | Источник и текущие потоки с активной связью; PID аутентифицируется, затем проверяется в /proc. | То же требование активной связи PipeWire. Один лишь handle V4L2 не доказывает наличие потока; обращения вне PipeWire могут остаться незамеченными. | Отключение звука источников сеанса, а не запрет ALSA. USB-камеры uvcvideo поддерживаются только через отдельный проверенный административный компонент; камеры не с USB не поддерживаются. |
| macOS 15+ Apple Silicon / Intel | Активность ввода CoreAudio; PID проверяется, если сведения о процессе доступны для чтения. | Состояние работы устройства через CoreMediaIO, средняя уверенность. Клиент и PID неизвестны. Этот сигнал не доказывает наличие потока изображений; состояние камеры «degraded». | Отключение звука возможно только при изменяемом свойстве ввода. Профиль камеры под управлением MCW необходимо вручную одобрить в Системных настройках; его наличие не подтверждает физическую блокировку. |
Не универсальный выключатель. MCW — не антивирус и не криминалистическое доказательство захвата. Защищённый процесс, драйвер, прямой доступ или недоступный сеанс могут ограничивать наблюдение и управление. WSL, виртуальные машины и runner без оборудования не гарантируют доступ к физическим устройствам.
Ресурсы: цель в 15 МБ не достигнута. Документированные измерения полного сценария Windows превышают эту цель (выборочный пик суммарного RSS: 56,041 МБ). Эти измерения имеют ограничения; гарантия соблюдения бюджета памяти не заявляется. Читать об измерениях и их применимости ↗
Простое начало
Стабильная версия 0.17.2. Исполняемые файлы размещаются в GitHub Releases, а не на зеркале этого сайта.
curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/Roman-Cuisset/miccamwatch/a58c8b9f3a967589a576879d6d27bfdbc40f9dff/installer/install.sh | shЭта команда выполняет удалённый скрипт. Безопаснее сначала скачать и прочитать его. Это не команда PowerShell: в Windows выберите MSI или ZIP ниже.
Без JavaScript или при предварительном просмотре по HTTP ссылка HTTPS указывает на скрипт из неизменяемого коммита версии. На этом сайте при HTTPS команда адаптируется к локальной конечной точке install.sh. Архивы и их контрольные суммы по-прежнему скачиваются с GitHub.
Команды можно выделить и без JavaScript. Кнопка «Копировать» появляется только при наличии в браузере безопасного API буфера обмена; иначе выделите текст и используйте Ctrl+C, Cmd+C или меню выделения.
MSI для отдельного пользователя добавляет mcw в PATH и ярлык в меню «Пуск». Портативный ZIP содержит пару CLI + хост значка в трее; храните оба исполняемых файла вместе и в одной версии.
После установки заново откройте PowerShell. Если ZIP не добавлен в PATH, используйте .\mcw.exe вместо mcw.
mcw --version
mcw doctor
mcw status --lang ru
mcw topНужны библиотеки PipeWire/SPA, pw-dump и доступный сокет PipeWire в вашем пользовательском сеансе. Для значка в трее нужен хост StatusNotifierItem; для уведомлений и звука — соответствующие службы сеанса.
По умолчанию установщик управляет исполняемым файлом в $HOME/.local/bin и проверяет точную запись архива в SHA256SUMS. Неподдерживаемые архитектуры отклоняются, а не подменяются.
Установщик выбирает вашу нативную архитектуру. Для строки меню нужен сеанс Aqua. Нативный вспомогательный компонент включён в архив; среда разработки для этих архивов не требуется.
Рекомендуемая альтернатива
Linux и macOS · Этот скрипт закреплён за коммитом версии. Сначала скачайте и прочитайте его; проверьте контрольную сумму перед выполнением отдельной команды установки ниже.
curl --proto '=https' --tlsv1.2 -fsSL \
https://raw.githubusercontent.com/Roman-Cuisset/miccamwatch/a58c8b9f3a967589a576879d6d27bfdbc40f9dff/installer/install.sh \
-o mcw-install.sh
less mcw-install.shПеред запуском сравните контрольную сумму файла: sha256sum mcw-install.sh в Linux или shasum -a 256 mcw-install.sh в macOS. Ожидаемое значение для скрипта установщика (не архивов):
b7348c9a6f37a3d4f89faa2b767fd4880162d90c8f5d7c151185e0823384d1bbКонтрольная сумма, опубликованная в том же канале, проверяет согласованность байтов, а не независимую подлинность. Также изучите скрипт в его неизменяемом источнике.
После прочтения и проверки установите версию 0.17.2, явно запросив добавление в PATH:
sh mcw-install.sh --version v0.17.2 --add-pathЗамените --add-path на --no-modify-path, чтобы не менять настройки оболочки. Если вариант не выбран, установщик запрашивает согласие в терминале; в неинтерактивном режиме он не изменяет PATH без уведомления. Затем откройте новый терминал. Автозапуск и управление устройствами не включаются.
Ожидаемый результат в Unix: скрипт показывает этапы скачивания и проверки, затем Installation completed: mcw 0.17.2 для явно запрошенной версии. В совместимом терминале этапы выделяются цветом (отключается через NO_COLOR). Далее объясняется, как запустить mcw top и при необходимости использовать полный путь или открыть новый терминал для PATH. Этот успех относится к установке: он не подтверждает ни доступность ваших устройств, ни активную защиту.
Скачайте свой архив и SHA256SUMS из одного и того же релиза. В Linux используйте sha256sum --check --ignore-missing SHA256SUMS. В macOS сравните shasum -a 256 nom-de-l-archive.tar.gz с точной записью в манифесте. В PowerShell команда Get-FileHash .\miccamwatch-windows-x86_64.zip -Algorithm SHA256 позволяет сравнить сумму ZIP (для MSI измените имя файла).
Аттестации GitHub сообщают о происхождении сборки. Для проверки с помощью GitHub CLI укажите путь к скачанному файлу:
gh attestation verify ./miccamwatch-linux-x86_64.tar.gz \
--repo Roman-Cuisset/miccamwatch \
--signer-workflow Roman-Cuisset/miccamwatch/.github/workflows/release.yml \
--source-ref refs/tags/v0.17.2 \
--source-digest a58c8b9f3a967589a576879d6d27bfdbc40f9dff \
--deny-self-hosted-runnersКонтрольные суммы и архивы публикуются в одном канале. Происхождение сборки, подпись издателя и антивирусный анализ — три разные вещи. Этот сайт не раздаёт бинарные файлы.
Homebrew / AUR: рецепты есть в репозитории; опубликованный tap или пакет AUR не заявлен. Не используйте выдуманную команду менеджера пакетов.
На каждый день
Сама установка не включает ни защиту, ни автозапуск, ни завершение процессов.
Выведите версию, состояние сборщиков данных и наблюдаемые обращения. status возвращает 0, если подходящих обращений нет, 1, если они есть, и 2 при ошибке: код 1 не означает сбой.
mcw --version
mcw doctor
mcw status --lang rutop открывает панель мониторинга. tray открывает нативное меню (область уведомлений Windows, StatusNotifierItem в Linux, строка меню macOS). Наблюдение в терминале завершается через Ctrl+C.
mcw top
# Или наблюдение с уведомлениями:
mcw watch --notifyТолько если вы этого хотите, зарегистрируйте запуск значка в трее при входе: пользовательскую задачу/запись Windows, файл .desktop Linux или LaunchAgent macOS. Никакая служба входа не устанавливается неявно.
mcw autostart enable
mcw autostart status
# Чтобы отменить:
mcw autostart disableАвтоматическое завершение процессов (--kill-unauthorized) по умолчанию отключено. Оно требует явного отказа по политике издателя/пути, активного захвата с установленным процессом, двух последовательных наблюдений и незащищённого процесса. Один лишь риск «suspicious» его не включает; камера macOS без PID не может его вызвать.
Установка остаётся под вашим управлением
Не смешивайте MSI, управляемый установщик, ручной архив и менеджер пакетов. Порядок действий определяется тем, кто управляет установкой.
mcw update не обновляет регистрацию MSI.mcw update проверяет и заменяет согласованную пару CLI/tray после проверки доступности защиты и безопасной остановки принадлежащего установке tray.mcw update или публичный скрипт с тем же префиксом. Без --version скрипт следует за последней стабильной версией. Средство обновления отклоняет переход на более старые версии.bin при соблюдении документированных условий.mcw update.Управляемые обновления сохраняют предпочтения и не включают заново отсутствующий, отключённый или внешний автозапуск. Изменённая, активная установка или установка, принадлежность которой невозможно проверить, отклоняется; не пытайтесь принудительно обойти проверку.
--prefix, если установка использовала нестандартный префикс.mcw autostart disable
mcw tray stop
sh mcw-install.sh --uninstallСкрипт Unix удаляет только принадлежащие ему исполняемые файлы/состояния и управляемые блоки PATH; он не удаляет политики, предпочтения, историю или доказательства принадлежности средств управления. Удаление приложения не заменяет явное восстановление.
Локально по умолчанию
Без записи аудио и захвата изображений. Без телеметрии и отправки истории на сервер.
Прочитать политику конфиденциальностиMCW читает системные сигналы и сведения о процессах. Настройки, политики, журналы и история остаются локальными. Посмотрите пути с помощью mcw config settings-path и mcw history path; mcw history clear очищает историю MCW.
Установка и обновление обращаются к GitHub. Политика доверия «online» разрешает нативные сетевые проверки сертификатов или ключей; «offline» запрещает их в зависимости от платформы. Системные журналы следуют собственным правилам хранения.
Без трекеров, сторонних библиотек и удалённых шрифтов. Необязательный JavaScript улучшает вкладки и копирование; скачивание и руководства доступны и без него. Хостинг-провайдер и GitHub могут обрабатывать обычные метаданные запросов, например IP-адрес.
Когда что-то непонятно
Начните с mcw doctor. Недоступный сборщик данных — не зелёный свет.
После изменения PATH откройте новый терминал. В портативной Windows используйте .\mcw.exe из распакованной папки. В Unix попробуйте "$HOME/.local/bin/mcw" --version, если оставили префикс по умолчанию. Установщик не может изменить окружение родительского терминала.
Если Defender поместил исполняемый файл в карантин, проблема не в PATH: сохраните сведения из журнала защиты и следуйте мерам предосторожности ниже, не восстанавливая обнаруженные байты.
Активность камеры может остаться без установленного PID, если нативный отчёт не предоставляет пригодной временной метки, даже когда Windows предоставляет необработанный PID. Начиная с версии 0.17.2, значок в трее сохраняет наблюдаемые обращения и отмечает этот неполный охват оранжевым восклицательным знаком. Подробности указывают затронутый сборщик данных, причину и захваты; реальная недоступность или ошибка защиты сохраняют приоритет. Старые версии могут показывать серый крест и общее сообщение «telemetry degraded».
Используйте Status details…, mcw status --lang ru, mcw status --json и mcw doctor, чтобы различать активность, определение процесса и работоспособность сборщиков данных. Неизвестный процесс не означает ни «нет обращений», ни «камера заблокирована»: нельзя определять клиента или право завершить процесс только по его имени или необработанному PID. Снимки на странице остаются явно историческими, версии 0.17.1.
Наблюдение: запускайте MCW в своём пользовательском сеансе без общего повышения привилегий. Системные ограничения могут сделать некоторые сведения о процессах или сборщики данных недоступными; дополнительные права не гарантируют определение процесса.
Windows: изменения устройств камеры требуют отдельного разрешения UAC. Linux: для управления USB-камерами сначала нужен отдельный административный компонент той же версии, затем явное разрешение Polkit; пользовательский установщик его не развёртывает. macOS: установка и удаление профиля камеры остаются ручными действиями в Системных настройках, а уведомления зависят от системного разрешения. MCW не обходит TCC, Gatekeeper или SIP; наличие профиля не доказывает запрет захвата.
Запускайте MCW в своём пользовательском сеансе рабочего стола, не через sudo. Проверьте pw-dump, библиотеки PipeWire/SPA, XDG_RUNTIME_DIR, пользовательский сокет и, если он настроен иначе, PIPEWIRE_REMOTE. Недоступный или перезапускаемый сокет — ошибка, а не «нет обращений».
Для значка в трее нужен хост StatusNotifierItem. Уведомления требуют службы сеанса и notify-send; звук требует canberra-gtk-play, темы и бэкенда сеанса. Принятый вызов не подтверждает, что уведомление было увидено или звук услышан. Прямые обращения к камере вне PipeWire могут остаться без определённого процесса или ухудшить наблюдение.
Публичный API CoreMediaIO сообщает о состоянии работы устройства, а не о клиенте, который его использует. Поэтому MCW показывает неизвестный PID и ограниченную работоспособность наблюдения за камерой, а не выдумывает процесс. Доступность AVFoundation и состояние работы не доказывают, что изображения были захвачены. Ожидание одобрения профиля не равнозначно блокировке.
Нет: не отключайте защиты и не добавляйте исключений. Публичный релиз 0.17.2 не подписан в Windows; подпись Apple Developer ID и нотариальное заверение не заявлены. Поэтому возможны предупреждения. Аттестация GitHub описывает сборку, а не её безвредность.
При обнаружении в Defender запишите имя, путь, версию, доступный хеш и сведения из журнала защиты. Не восстанавливайте файл из карантина и не переустанавливайте автоматически обнаруженные байты. Репозиторий документирует инцидент и ручную отправку в Microsoft; заключение о ложном срабатывании не заявляется. Подпись, происхождение и безопасные действия ↗.
Не обязательно. В Windows ручная защита принадлежит нативному фоновому брокеру и остаётся запрошенной после закрытия значка в трее или top, вплоть до mcw unmute или mcw camera allow. Это не обещает сохранения после перезагрузки. Linux и macOS сохраняют ограниченные разовые средства управления: этот механизм Windows на них не распространяется.
Проверьте фактическое состояние. Остановленный защитный наблюдатель камеры Windows остаётся поводом для предупреждения: одно лишь намерение «Block» не доказывает защиту будущих подключений. Явно восстановите состояние перед заменой или удалением и завершите все ожидающие действия.
Активный исполняемый файл, запрошенная защита, ожидающее восстановление, отсутствующая/изменённая запись об установке или небезопасный путь могут помешать операции. Остановите свои наблюдатели, завершите привилегированные операции и проверьте состояние средств управления. Скрипт отклоняет root, изменённые/не принадлежащие ему цели и небезопасные ссылки; он не останавливает процессы за вас.
Старый значок в трее может потребовать обычного ручного выхода: не завершайте его принудительно во время операции с камерой. Не удаляйте журналы принадлежности, чтобы обойти отказ. Используйте соответствующий способ управления установкой и документированный порядок действий.
mcw doctor --json и mcw status --json помогают диагностике, но пути, пользователи, PID, устройства и названия приложений могут быть личными данными. Перечитайте и скройте эти сведения, прежде чем прикладывать фрагмент к issue. MCW не собирает ваши отчёты автоматически; отправка остаётся добровольной. Технические сведения о доказательствах остаются на английском для стабильности диагностики.
Открыт, документирован, доступен для аудита