زوم چطور بدون میکروفون میفهمه تو Google Meet جلسه داری
خلاصهٔ کاملتر
نویسنده نسخهٔ arm64 برنامهٔ Zoom Workplace 7.1.5 رو استاتیک ریورس کرده تا بفهمه چرا زوم قبل از اینکه کاربر کاری بکنه میدونه یه جلسهٔ Google Meet یا Teams یا Slack در جریانه و پیام Take Note رو جلوش میذاره. جواب هیچ ربطی به صدا نداره. زوم اصلاً به میکروفون گوش نمیده، فقط دفتر حسابوکتابی رو میخونه که خود سیستمعامل برای حریم خصوصی نگه میداره.
روی مک کلاسی به اسم PrivacyEventMonitor داخل viper.framework مسئول این کاره. این کلاس /usr/bin/log رو اجرا میکنه و استریم لاگ Control Center رو با فیلتر روی زیرسیستم کنترلسنتر و دستهٔ sensor-indicators میگیره. Control Center همون بخشیه که چراغ نارنجی و سبز میکروفون و دوربین رو مدیریت میکنه، و اسم و bundle ID برنامهٔ مسئول رو هم توی لاگ مینویسه.
زوم فقط ردیفهایی رو نگه میداره که با برچسب [mic] اومدن، همون دو فیلد اسم و شناسه رو درمیاره و لیست جدید رو با لیست قبلی مقایسه میکنه. هر اپلیکیشنی که به لیست اضافه یا ازش کم بشه، یه رویداد شروع یا پایان استفاده از میکروفونه. هیچ تحلیل صوتی وسط نیست. لایهٔ بالاتر هم chrome رو به برچسب Google Meet نگاشت میکنه و تصمیم میگیره پیام نشون داده بشه یا نه.
روی ویندوز مسیر فرق داره ولی ایده یکیه. دیتکتور داخل viper_async_device.dll کلید per-user مربوط به CapabilityAccessManager\ConsentStore\microphone رو فقط با KEY_READ باز میکنه، هم اپهای packaged و هم زیرشاخهٔ NonPackaged رو لیست میکنه و مقدار ۶۴ بیتی LastUsedTimeStop هر کدوم رو میخونه. صفر بودن این مقدار یعنی بازهٔ دسترسی هنوز بسته نشده، پس اون برنامه همین الان داره از میکروفون استفاده میکنه.
نکتهٔ اصلی نویسنده اینه که هیچکدوم از این دو راه مجوز خاصی نمیخواد. اون همون فیلتر لاگ رو با کاربر عادی و بدون sudo تست کرده و مک قبولش کرده، بدون نیاز به مجوز Microphone یا Screen Recording یا Accessibility. روی ویندوز هم کلید زیر HKEY_CURRENT_USER ـه و خواندنش نه بالا بردن سطح دسترسی میخواد نه مجوز میکروفون. در عوض هیچکدوم API پایدار هم حساب نمیشن.
نکات کلیدی:
- نسخههای بررسیشده: Zoom Workplace 7.1.5 (84650) روی مک arm64 و 7.1.8.46825 روی ویندوز x64
- روی مک منبع داده استریم Unified Logging با دستهٔ sensor-indicators از زیرسیستم Control Center ـه
- روی ویندوز ملاک تشخیص، صفر بودن LastUsedTimeStop توی ConsentStore میکروفونه
- نویسنده هیچ مصرفکنندهٔ ETW، ناظر audio session یا پردازش PCM توی این مسیر پیدا نکرده
- بازهٔ polling، فلگهای کنترلی و اینکه این متادیتا به تلمتری میره یا نه، با تحلیل استاتیک مشخص نمیشه




