Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Tarafından Mario Hewardt
Yayımlanma Tarihi: 26 Mart 2026
macOS için dinleyiciyi indirme (GitHub)
Introduction
macOS yürütülebilir ikili dosyaları için kod imzalama yetkilendirmelerini bulmak ve listelemek için bir komut satırı aracı. Statik tarama, gerçek zamanlı işlem izleme ve arka plan daemon işlemini destekler.
listent yürütülebilir ikili dosyaları bulmak için dizinleri özyinelemeli olarak tarar ve kod imzalama yetkilendirmelerini ayıklar. MacOS uygulamaları tarafından istenen izinleri denetlemesi veya anlaması gereken güvenlik araştırmacıları, geliştiriciler ve sistem yöneticileri için tasarlanmıştır.
Features
Temel Özellikler
- Hızlı tarama: Akıllı filtreleme ve ilerleme göstergeleriyle dizin ağaçlarını verimli bir şekilde gezer
-
Yetkilendirme ayıklama: Yetkilendirmeleri ikili dosyalardan ayıklamak için macOS
codesignkullanır - Esnek filtreleme: Glob desen desteğiyle yollara ve belirli yetkilendirme anahtarlarına göre filtreleme
- Birden çok çıkış biçimi: İnsan tarafından okunabilir ve yapılandırılmış JSON çıkışı
- Birden çok yol: Tek bir komutta birden çok dizini tarama
- Düzgün kesintiler: Ctrl+C ile temiz iptal
çalışma modları
1. Statik Tarama Modu (Varsayılan)
Yetkilendirmeler için dosyaları ve dizinleri tarayın:
# Scan default locations (/usr/bin and /usr/sbin)
listent
# Scan specific paths
listent /usr/bin /usr/sbin
# Filter by entitlement patterns
listent -e "com.apple.security.*"
listent -e "*network*" -e "*debug*"
# JSON output for automation
listent /usr/bin -e "*security*" --json
2. Gerçek Zamanlı monitör modu
Yetkilendirmeler için yeni işlemleri izleyin:
# Monitor all new processes
listent monitor
# Monitor with custom polling interval
listent monitor --interval 0.5
# Monitor specific entitlements only
listent monitor -e "com.apple.security.network.*"
3. Daemon Modu
İzlemeyi ön planda sürekli olarak çalıştırın (test veya el ile daemon işlemi için kullanışlıdır):
# Run as daemon in foreground
listent daemon run
# Daemon with custom config file
listent daemon run --config /etc/listent/custom.toml
Özel yapılandırma dosyası şablonu (daemon.toml):
[daemon]
# How often to poll for new processes, in seconds (0.1 - 300.0)
polling_interval = 1.0
# Start automatically when loaded by launchd (RunAtLoad)
auto_start = true
[monitoring]
# Filesystem paths to scan for running process binaries.
# Empty list = monitor processes from all paths.
path_filters = ["/usr/bin", "/usr/sbin"]
# Entitlement patterns to match (glob syntax). Empty list = all entitlements.
# Examples: "com.apple.security.*", "*network*"
entitlement_filters = []
Sorgu günlükleri:
# View listent logs in real-time
log stream --predicate 'subsystem == "com.microsoft.sysinternals.listent"' --level info
# View recent logs
log show --predicate 'subsystem == "com.microsoft.sysinternals.listent"' --last 1h
# Filter for errors only
log show --predicate 'subsystem == "com.microsoft.sysinternals.listent" AND messageType == error' --last 24h
4. Arka Plan Daemon Hizmeti
launchd tarafından yönetilen kalıcı bir sistem hizmeti olarak izlemeyi çalıştırın.
# Install and start daemon
sudo listent daemon install
# Check daemon status
listent daemon status
# View daemon logs
listent daemon logs
listent daemon logs --since 1h
listent daemon logs --since 30m
listent daemon logs --since "2025-01-15 10:00"
listent daemon logs --format json
listent daemon logs -f # Follow logs in real-time
# Stop daemon process
listent daemon stop
# Uninstall service
sudo listent daemon uninstall
Örnekler
Statik Tarama
# Basic scan with progress (uses default /usr/bin and /usr/sbin)
listent
# Multi-directory scan with filtering
listent /usr/bin /usr/sbin -e "*security*"
# Find all network-related entitlements
listent -e "*network*" --json | jq '.results[].entitlements'
# Scan quietly (suppress warnings)
listent /usr/bin --quiet
İşlem İzleme
# Monitor all processes with 2-second intervals
listent monitor --interval 2.0
# Monitor only security-related entitlements
listent monitor -e "com.apple.security.*"
# Run as daemon with custom config
listent daemon run --config /etc/listent/daemon.toml
Daemon Yönetimi
# Install daemon with default monitoring (requires sudo)
sudo listent daemon install
# Install with custom configuration file
sudo listent daemon install --config /path/to/config.toml
# View recent daemon activity
listent daemon logs --since 1h
# Check if daemon is running
listent daemon status
# Stop and remove daemon
listent daemon stop
sudo listent daemon uninstall
Konfigürasyon
Komut Satırı Seçenekleri
-
Yollar: Konumsal bağımsız değişkenler olarak birden çok yol belirtilebilir:
listent /path1 /path2 -
Yetkilendirme filtreleme:
-e "pattern"tam eşleşmeleri ve glob'ları (*,?,[]) destekler -
Çıkış biçimi:
--jsonveya-jyapılandırılmış çıktı için varsayılan değer insan tarafından okunabilir -
Sessiz mod:
--quietveya-qokunamayan dosyalar hakkındaki uyarıları gizler -
İzleme:
listent monitoralt komut gerçek zamanlı işlem izlemeyi etkinleştirir -
İzleme aralığı:
--interval SECONDSYoklama sıklığını ayarlar (0,1-300,0, varsayılan: 1,0) -
Daemon modu:
listent daemon runarka plan daemon işlemi olarak çalışır -
Daemon yönetimi:
listent daemon install|uninstall|status|stop|logs -
Yapılandırma dosyası:
--config FILEveya-c FILEdaemon yapılandırma yolunu belirtir
Yetkilendirme Desenleri
# Exact match
-e "com.apple.security.network.client"
# Wildcard patterns
-e "com.apple.security.*" # All Apple security entitlements
-e "*network*" # Any entitlement containing "network"
-e "*.debug.*" # Debug-related entitlements
# Multiple patterns (OR logic)
-e "com.apple.private.*" -e "*.debug.*"
Daemon Yapılandırması
Daemon ayarları bir TOML yapılandırma dosyası aracılığıyla yapılandırılır:
-
Varsayılan konum:
~/.config/listent/daemon.toml -
Özel yol:
--configdaemon installile kullanın
Yapılandırmayı değiştirmek için yapılandırma dosyasını düzenleyin ve daemon'ı yeniden başlatın:
# Edit config
nano ~/.config/listent/daemon.toml
# Restart daemon
listent daemon stop
sudo listent daemon install
Örnek daemon yapılandırması:
[daemon]
polling_interval = 1.0
auto_start = true
[monitoring]
path_filters = []
entitlement_filters = ["com.apple.security.*", "*network*"]
[logging]
level = "info"
subsystem = "com.microsoft.sysinternals.listent"
category = "daemon"
Sorun giderme
Ctrl+C Dış Terminallerde Çalışmıyor
Ctrl+C Terminal.app veya iTerm2'de taramayı kesintiye uğratmazsa, bunun nedeni macOS terminal sinyali işleme sorunudur.
Geçici çözüm: çalıştırmadan listentönce şunu yürütür:
trap - INT
Bu, mevcut kesme tuzaklarını kaldırır ve varsayılan SIGINT davranışını geri yükler. Bundan sonra, Ctrl+C normal şekilde çalışmalıdır.
Not: Bu sorun VS Code'un tümleşik terminalini etkilemez.
Çıkış Biçimleri
İnsan Okunabilir (Varsayılan)
Found 2 binaries with 5 total entitlements:
/usr/bin/security:
com.apple.private.platformsso.security: true
/usr/bin/nc:
com.apple.security.network.client: true
com.apple.security.network.server: true
Scan Summary:
Scanned: 156 files
Matched: 2 files
Duration: 2.34s
JSON Biçimi
{
"results": [
{
"path": "/usr/bin/security",
"entitlements": {
"com.apple.private.platformsso.security": true
},
"entitlement_count": 1
}
],
"summary": {
"scanned": 156,
"matched": 2,
"duration_ms": 2340,
"skipped_unreadable": 0
}
}
Güvenlik
Bir güvenlik sorunu bulduğunuzu düşünüyorsanız, lütfen bunu genel bir sorun açmak yerine projenin GitHub deposu aracılığıyla bildirin.
Linux ve macOS için jcd'i indirme (GitHub)
Çalıştığı yer:
- macOS