
Esploratore di IPC di macOS, launchd, Mach-O e relazioni di fiducia — strumento forense nativo del terminale senza dipendenze
machscope è un esploratore macOS nativo per terminale che trasforma processi, job di launchd, servizi Mach, bundle, firme, entitlements e collegamenti Mach-O in un unico grafico interrogabile.
Esiste per rispondere brutalmente bene a una domanda semplice:
A cosa è realmente connesso questo processo, servizio, binario o bundle?
Correla processi, eseguibili, job di launchd, servizi Mach, bundle, servizi XPC incorporati, firme digitali, entitlements, collegamenti Mach-O e risultati di fiducia/anomalie in un'unica vista.
Se Activity Monitor, ps, lsof, launchctl, codesign e otool avessero un figlio paranoico e amichevole per l'operatore, sarebbe questo.
Gli interni di macOS sono eleganti, ma la verità è sparsa.
Per capire un singolo processo sospetto, spesso ci si ritrova a saltare tra:
pslsoflaunchctlcodesignotoolInfo.plist del bundlemachscope comprime questo flusso di lavoro in un unico strumento da terminale.
È progettato per:
Dato un PID, un percorso, un'etichetta launchd o un nome di servizio Mach, machscope può correlare:
pslsoflaunchctlMachServices dichiarati.xpc incorporaticodesignotoolNon pretende di osservare ogni relazione XPC attiva. Alcune relazioni sono dichiarate, non osservate. Questa onestà è intenzionale.
ps mostra il processo, non la catena di proprietàlaunchctl mostra il job, non l'intero contesto binario/bundle/fiduciacodesign mostra l'identità, non le relazioni a runtimeotool mostra i collegamenti, non l'esposizione di launchd o servizi Machmachscope correla tutto in un unico passaggio--follow
graph.nodes e graph.edges sono progettati per futuri flussi di lavoro TUI, renderer o diff./machscope.py inspect <pid|path|launchd-label|mach-service>
./machscope.py inspect <target> --follow
./machscope.py inspect <target> --json
./machscope.py scan --limit 40 --min-score 1
./machscope.py services [filter]
./machscope.py inspect 1
./machscope.py inspect 57382
./machscope.py inspect /System/Applications/Calculator.app --follow
./machscope.py inspect /usr/libexec/remoted
./machscope.py inspect com.apple.WindowServer --follow
./machscope.py inspect ai.openclaw.gateway --follow
./machscope.py inspect com.apple.dnssd.service --follow
./machscope.py scan --limit 40 --min-score 1
./machscope.py scan --limit 10 --min-score 6
./machscope.py services
./machscope.py services mDNS
./machscope.py services com.apple
Target: com.apple.dnssd.service [mach-service follow]
Resolved via: mach-service-launchd
Executable: /usr/sbin/mDNSResponder
Launchd: com.apple.mDNSResponder.reloaded
Plist: /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
Signature: apple-platform team=not set id=com.apple.mDNSResponder
Mach services: com.apple.dnssd.service, com.apple.mDNSResponder.control, com.apple.mDNSResponder.log_utility
Entitlements: 0
Linked dylibs: 25 RPATHs: 0
Trust: score=1 verdict=ordinary
Findings:
- [LOW] T012 Odd launchd label suffix
inspect --json restituisce un oggetto strutturato progettato per scripting e futuri lavori UI.
Struttura di primo livello:
targettarget_resolutionprocessbinarybundlelaunchdtrustgraph.nodesgraph.edgesIl grafico è intenzionalmente semplice per poter alimentare:
--follow--follow è dove machscope inizia a sembrare meno un dump di metadati e più un esploratore.
Aggiunge pivot di risoluzione come:
launchctl print → PID live quando disponibileQuesto è importante perché gli artefatti macOS più interessanti spesso non sono la cosa letterale che hai digitato, ma la cosa dietro di essa.
machscope include un semplice strato di fiducia/anomalie.
Esempi di cose che può evidenziare:
.reloadedNon è un motore di verdetto malware. È un modo per far emergere piste, ridurre i punti ciechi e rendere più facile interrogare catene sospette.
La prima versione utilizza intenzionalmente:
Strumenti inclusi:
pslsoflaunchctlcodesignotoolfileQuesto mantiene lo strumento facile da clonare, ispezionare ed eseguire su un sistema sostanzialmente standard.
Alcune relazioni sono dichiarate, non osservate.
Ad esempio:
machscope preferisce essere esplicito piuttosto che fingere certezza.
ps, lsof, launchctl, codesign, otool e fileEseguilo prima come utente normale.
Spesso è sufficiente per risposte utili.
Alcuni dettagli potrebbero essere parziali senza privilegi elevati, specialmente per:
lsoflaunchctlSe si esegue l'escalation, fallo deliberatamente.
machscope non cerca di essere:
È uno strumento locale affilato per rendere leggibili gli interni di macOS.
All'inizio, ma già utile.
L'attuale output e modello a grafico sono deliberatamente modellati in modo che le versioni future possano aggiungere:
--