Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
logitech-ipc-protocol — लॉजी ऑप्शन्स+ एजेंट IPC प्रोटोकॉल का रिवर्स-इंजीनियर्ड संस्करण। यूनिक्स सॉकेट (macOS) या नेम्ड पाइप (Windows) के माध्यम से प्रोग्रामेटिक रूप से लॉजिटेक मल्टी-होस्ट उपकरणों को स्विच करें। | Kitploit
उपकरण/GitHubGitHub/saimanish1/logitech-ipc-protocol
एम्बेडेड सिस्टम सुरक्षाब्लूटूथ सुरक्षारिवर्स इंजीनियरिंगवायरलेस सुरक्षाहार्डवेयर हैकिंगहार्डवेयर और IoT सुरक्षापेपर और शोधलर्निंग और शिक्षा

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
GitHub
saimanish1/logitech-ipc-protocol

logitech-ipc-protocol

लॉजी ऑप्शन्स+ एजेंट IPC प्रोटोकॉल का रिवर्स-इंजीनियर्ड संस्करण। यूनिक्स सॉकेट (macOS) या नेम्ड पाइप (Windows) के माध्यम से प्रोग्रामेटिक रूप से लॉजिटेक मल्टी-होस्ट उपकरणों को स्विच करें।

रिपॉजिटरी देखें
17272 दिन पहलेअभी तक समीक्षित नहीं

logitech-ipc-protocol

Logi Options+ एजेंट IPC प्रोटोकॉल का रिवर्स-इंजीनियर्ड दस्तावेज़ीकरण। यह मैकओएस और विंडोज दोनों पर बिना रॉ HID एक्सेस के लॉजिटेक मल्टी-होस्ट उपकरणों (होस्ट स्विचिंग, डिवाइस क्वेरी) के प्रोग्रामेटिक नियंत्रण को सक्षम बनाता है।

इस परियोजना से पहले इस प्रोटोकॉल को सार्वजनिक रूप से प्रलेखित नहीं किया गया था।

समस्या

macOS कर्नेल स्तर पर ब्लूटूथ इनपुट उपकरणों तक रॉ HID एक्सेस को ब्लॉक करता है। कोई अनुमति, एंटाइटलमेंट या हैक इसे बायपास नहीं करते। Logi Options+ एजेंट के पास Apple-हस्ताक्षरित एंटाइटलमेंट (com.apple.security.device.bluetooth) हैं जो इसे ब्लूटूथ HID एक्सेस प्रदान करते हैं। यह परियोजना इसके बजाय एजेंट के IPC चैनल के माध्यम से संचार करती है।

फ़ाइलें

फ़ाइलविवरण
logi-options-ipc-reverse-engineering.mdपूर्ण रिवर्स इंजीनियरिंग वृत्तांत
software-kvm-setup.mdदो-तरफा सॉफ्टवेयर KVM सेटअप गाइड (विंडोज + मैक)
switch_to_windows.pyमैक-साइड स्क्रिप्ट जो यूनिक्स सॉकेट IPC के माध्यम से लॉजिटेक उपकरणों और मॉनिटर इनपुट को स्विच करती है
api-reference.mdएजेंट API संदर्भ: काम करने वाले एंडपॉइंट, प्रोटोबफ़ प्रकार, डिवाइस क्षमताएँ
kvm.ahkAutoHotkey v2 स्क्रिप्ट: Win+1/2/3 हॉटकी जो kvm_daemon_windows.py --switch को कॉल करती है (सिस्टम ट्रे में चलती है)
kvm_daemon_windows.pyनामित पाइप के माध्यम से विंडोज डिवाइस स्विचिंग, DDC/CI के माध्यम से मॉनिटर स्विचिंग
kvm_config.iniविंडोज कॉन्फ़िगरेशन (हॉटकी, मॉनिटर इनपुट)
query_feature_index.pyलॉजिटेक उपकरणों के लिए HID++ ChangeHost फीचर इंडेक्स खोजता है (विंडोज)
query_agent_windows.pyनामित पाइप के माध्यम से विंडोज पर एजेंट को क्वेरी करता है
config.iniलीगेसी UnifiedSwitch कॉन्फ़िगरेशन (kvm_daemon_windows.py द्वारा प्रतिस्थापित)

उपयोग

Mac

root@kitploit:~
python3 switch_to_windows.py 0        # होस्ट 0 पर स्विच करें (DisplayPort)
python3 switch_to_windows.py 1        # होस्ट 1 पर स्विच करें (HDMI)
python3 switch_to_windows.py --dry-run 0  # दिखाएँ कि क्या होगा

Logi Options+ चल रहा होना चाहिए और m1ddc इंस्टॉल होना चाहिए (brew install m1ddc)।

Windows

root@kitploit:~
# AHK हॉटकी लिसनर प्रारंभ करें (सिस्टम ट्रे में चलता है, कोई कंसोल नहीं)
# AutoHotkey v2 आवश्यक: winget install AutoHotkey.AutoHotkey
start kvm.ahk

# या सीधे कमांड लाइन से स्विच करें
python kvm_daemon_windows.py --switch 1

# बिना स्विच किए खोजे गए उपकरण और कॉन्फ़िगर हॉटकी दिखाएँ
python kvm_daemon_windows.py --dry-run

Logi Options+ चल रहा होना चाहिए। निर्भरताएँ इंस्टॉल करें: pip install pywin32.

AHK स्क्रिप्ट Win+1/2/3 को सुनती है और प्रत्येक के लिए kvm_daemon_windows.py --switch N को कॉल करती है। Python स्क्रिप्ट एजेंट से स्वचालित रूप से उपकरण खोजती है (कोई हार्डकोडेड डिवाइस ID या HID पथ नहीं)। हॉटकी और मॉनिटर DDC/CI इनपुट मान कॉन्फ़िगर करने के लिए kvm_config.ini संपादित करें।

प्रोटोकॉल

एजेंट सुनता है:

  • macOS: यूनिक्स डोमेन सॉकेट /tmp/logitech_kiros_agent-<hash> पर
  • Windows: नामित पाइप \\.\pipe\logitech_kiros_agent-<hash> पर

दोनों प्लेटफार्मों पर समान वायर प्रोटोकॉल। बाइनरी फ्रेम प्रारूप:

root@kitploit:~
LE32(total_len) + BE32(proto_name_len) + "json" + BE32(msg_len) + JSON_message

एक डिवाइस को दूसरे होस्ट पर स्विच करें:

root@kitploit:~
{
  "msg_id": "1",
  "verb": "SET",
  "path": "/change_host/<device_id>/host",
  "payload": {
    "@type": "type.googleapis.com/logi.protocol.devices.ChangeHost",
    "host": 0
  }
}

पेलोड एक google.protobuf.Any फ़ील्ड है जो @type एनोटेशन के साथ इनलाइन JSON के रूप में क्रमबद्ध है। एजेंट एक सख्त प्रोटोबफ़ JSON पार्सर का उपयोग करता है; अज्ञात फ़ील्ड INVALID_MESSAGE_RECEIVED का कारण बनते हैं।

अनुरोध msg_id (snake_case) का उपयोग करते हैं। प्रतिक्रियाएँ msgId (camelCase) का उपयोग करती हैं। क्रियाएँ स्ट्रिंग हैं: "GET", "SET", "SUBSCRIBE", "BROADCAST"।

पूर्ण प्रोटोकॉल दस्तावेज़ीकरण के लिए logi-options-ipc-reverse-engineering.md देखें।

IPC त्रुटि प्रबंधन

लंबे समय तक चलने वाले ऑटोमेशन के लिए, BrokenPipeError पर पुनः कनेक्ट करें और सॉकेट/पाइप पथ को फिर से खोजें।

Windows HID++ गॉचा

ये तब लागू होते हैं जब HID++ कमांड सीधे भेजे जाते हैं, एजेंट के माध्यम से नहीं। kvm_daemon_windows.py एजेंट के नामित पाइप के माध्यम से जाकर इन सभी से बचता है।

लेगसी HID++ गॉचा (सीधे HID एक्सेस के लिए)

HID++ संग्रह प्रति डिवाइस भिन्न होता है। MX Master 3S COL02 पर HID++ प्रदर्शित करता है। MX Keys S COL05 का उपयोग करता है। दोनों उपयोग पेज FF43:0202 का उपयोग करते हैं। इसके साथ सत्यापित करें:

root@kitploit:~
Get-PnpDeviceProperty -InstanceId "<instance_id>" -KeyName DEVPKEY_Device_HardwareIds
# UP:FF43_U:0202 देखें

फीचर इंडेक्स प्रति डिवाइस भिन्न होता है। MX Keys S पर ChangeHost (0x1814) इंडेक्स 0x0A पर है जबकि MX Mechanical पर 0x09 पर। रनटाइम पर IRoot::GetFeature के माध्यम से क्वेरी करें:

root@kitploit:~
भेजें: {0x11, 0x00, 0x00, 0x0D, 0x18, 0x14, ...}  (20 बाइट्स)
पढ़ें: प्रतिक्रिया बाइट 4 = फीचर इंडेक्स

डिवाइस पुनः-युग्मन HID पथ बदलता है। बोल्ट रिसीवर से सीधे BT LE पर स्विच करने से पथ पूरी तरह बदल जाता है। एजेंट से वर्तमान पथ प्राप्त करने के लिए query_agent_windows.py चलाएँ।

BT LE GATT विक्रेता संग्रह "Unknown" हो जाता है। Windows कभी-कभी HID++ GATT सेवा को आरंभ करने में विफल रहता है। डिवाइस सामान्य रूप से काम करता है लेकिन विक्रेता कमांड चैनल मृत है। समाधान: Windows सेटिंग्स में ब्लूटूथ बंद/चालू करें। यह Windows/फर्मवेयर समस्या है।

परीक्षण किए गए संस्करण

संस्करणस्थिति
Logi Options+ 2.0.840907कार्यशील (macOS Tahoe, Windows 11)

वायर प्रोटोकॉल और कोर API पथ (/devices/list, /change_host/<id>/host) स्थिर रहे हैं। डिवाइस पुनः-युग्मन ने HID पथ और संग्रह संख्याओं को तोड़ा लेकिन IPC प्रोटोकॉल स्वयं प्रभावित नहीं हुआ।

अस्वीकरण

यह परियोजना केवल शैक्षिक और शोध उद्देश्यों के लिए है। यह एक अप्रलेखित, असमर्थित प्रोटोकॉल का दस्तावेज़ीकरण करती है जिसे Logitech किसी भी समय बदल या हटा सकता है। लेखक इस कोड या दस्तावेज़ीकरण के उपयोग से होने वाली किसी भी क्षति, डेटा हानि, खराब डिवाइस, या टूटी हुई कार्यक्षमता के लिए जिम्मेदार नहीं हैं। अपने जोखिम पर उपयोग करें।

यह परियोजना Logitech से संबद्ध या समर्थित नहीं है।

लाइसेंस

MIT

टूल डाउनलोड करें
परिदृश्यक्या होता हैपता लगाना
एजेंट नहीं चल रहासॉकेट/पाइप मौजूद नहींconnect() FileNotFoundError या ConnectionRefusedError उठाता है
सत्र के बीच एजेंट पुनरारंभकनेक्शन टूट जाता हैsend() BrokenPipeError उठाता है; recv() खाली लौटाता है
डिवाइस दूसरे होस्ट परNO_SUCH_PATHresult.code जांचें
डिवाइस अप्राप्य~3s के बाद TIMEOUTresult.code जांचें
गलत पेलोडINVALID_MESSAGE_RECEIVED@type गायब या अज्ञात फ़ील्ड
सॉकेट हैश बदलता हैपुराना पथ गायबहमेशा गतिशील रूप से खोजें, कभी हार्डकोड न करें
पुनरारंभ के बाद पुराना सॉकेटConnectionRefusedErrorथोड़ी देर बाद पुनः प्रयास करें
समवर्ती क्लाइंटठीक काम करता हैएजेंट कई कनेक्शन संभालता है