
macOS IPC, launchd, Mach-O, और विश्वास संबंध अन्वेषक — शून्य-निर्भरता टर्मिनल-नेटिव फोरेंसिक उपकरण
machscope एक टर्मिनल-नेटिव macOS एक्सप्लोरर है जो प्रोसेस, launchd जॉब, Mach सेवाओं, बंडल, सिग्नेचर, entitlements और Mach-O लिंकेज को एक पूछताछ योग्य ग्राफ में बदल देता है।
यह एक सरल सवाल का बेहद बेहतरीन जवाब देने के लिए बनाया गया है:
यह प्रोसेस, सेवा, बाइनरी या बंडल असल में किससे जुड़ा है?
यह प्रोसेस, executables, launchd जॉब, Mach सेवाएँ, बंडल, embedded XPC सेवाएँ, कोड सिग्नेचर, entitlements, Mach-O लिंकेज और trust/विसंगति findings को एक दृश्य में सह-संबद्ध करता है।
अगर Activity Monitor, ps, lsof, launchctl, codesign और otool की कोई परानोइया-ग्रस्त, ऑपरेटर-अनुकूल संतान होती, तो यह वही होता।
macOS इंटरनल्स सुरुचिपूर्ण हैं, लेकिन सच्चाई बिखरी हुई है।
एक संदिग्ध प्रोसेस को समझने के लिए, आप अक्सर इनके बीच उछलते रहते हैं:
pslsoflaunchctlcodesignotoolInfo.plistmachscope उस कार्यप्रवाह को एक ही टर्मिनल टूल में समेट देता है।
यह निम्नलिखित के लिए बनाया गया है:
किसी PID, पथ, launchd label, या Mach सेवा नाम को देखते हुए, machscope सह-संबद्ध कर सकता है:
ps से प्रोसेस मेटाडेटाlsof से executable पथ और खुली-फ़ाइल संदर्भlaunchctl से launchd स्थिति और label संकेतMachServices.xpc सेवाएँcodesign से entitlement डेटाotool से Mach-O हेडर, linked dylibs, load commands और rpathsयह हर जीवित XPC संबंध को देखने का दिखावा नहीं करता। कुछ संबंध घोषित होते हैं, प्रेक्षित नहीं। यह ईमानदारी जानबूझकर है।
ps प्रोसेस दिखाता है, स्वामित्व श्रृंखला नहींlaunchctl जॉब दिखाता है, पूरा बाइनरी/बंडल/trust संदर्भ नहींcodesign पहचान दिखाता है, runtime संबंध नहींotool लिंकेज दिखाता है, launchd या Mach सेवा एक्सपोज़र नहींmachscope इन सबको एक ही बार में सह-संबद्ध करता है--follow रिज़ॉल्वर pivot
graph.nodes और graph.edges भविष्य के TUI, renderer, या 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 एक संरचित वस्तु लौटाता है जो स्क्रिप्टिंग और भविष्य के UI कार्यों के लिए डिज़ाइन की गई है।
शीर्ष-स्तरीय आकृति:
targettarget_resolutionprocessbinarybundlelaunchdtrustgraph.nodesgraph.edgesग्राफ जानबूझकर सरल है ताकि यह इन्हें फ़ीड कर सके:
--follow कैसे काम करता है--follow वह जगह है जहाँ machscope मेटाडेटा डंपर की तुलना में एक्सप्लोरर जैसा महसूस होने लगता है।
यह रिज़ॉल्वर pivot जोड़ता है जैसे:
launchctl print स्थिति → उपलब्ध होने पर जीवित PIDयह मायने रखता है क्योंकि सबसे दिलचस्प macOS artifacts अक्सर वह शाब्दिक चीज़ नहीं होती जो आपने टाइप की, बल्कि उसके पीछे की चीज़ होती है।
machscope में एक सरल trust/विसंगति परत शामिल है।
यह जो उजागर कर सकता है उसके उदाहरण:
.reloaded जैसे अजीब launchd प्रत्यययह मैलवेयर verdict इंजन नहीं है। यह सुराग उजागर करने, अंधे धब्बों को कम करने और संदिग्ध श्रृंखलाओं की जाँच को आसान बनाने का एक तरीका है।
पहला संस्करण जानबूझकर उपयोग करता है:
लिपटे हुए टूल शामिल हैं:
pslsoflaunchctlcodesignotoolfileयह टूल को एक सामान्य-से सिस्टम पर क्लोन, निरीक्षण और चलाने में आसान रखता है।
कुछ संबंध घोषित होते हैं, प्रेक्षित नहीं।
उदाहरण के लिए:
machscope निश्चितता का दिखावा करने के बजाय स्पष्ट रहना पसंद करता है।
ps, lsof, launchctl, codesign, otool और file जैसे मूल टूल तक पहुँचपहले इसे सामान्य उपयोगकर्ता के रूप में चलाएँ।
उपयोगी उत्तरों के लिए अक्सर यही पर्याप्त होता है।
ऊँचे विशेषाधिकारों के बिना कुछ विवरण आंशिक हो सकते हैं, विशेष रूप से इनके आसपास:
lsoflaunchctlयदि आप विशेषाधिकार बढ़ाते हैं, तो जानबूझकर करें।
machscope यह बनने की कोशिश नहीं कर रहा है:
यह macOS इंटरनल्स को सुपाठ्य बनाने के लिए एक तेज़ स्थानीय टूल है।
प्रारंभिक, लेकिन पहले से ही उपयोगी।
वर्तमान आउटपुट और ग्राफ मॉडल जानबूझकर इस तरह आकार दिए गए हैं कि भविष्य के संस्करण जोड़ सकें: