TapDucky - Android USB HID कीस्ट्रोक इंजेक्टर
TapDucky - Android USB HID कीस्ट्रोक इंजेक्टर
रूट किए गए Android के लिए ओपन-सोर्स DuckyScript रनर, USB Gadget (ConfigFS) समर्थन के साथ
TapDucky आपको USB कीबोर्ड, माउस या कम्पोजिट HID डिवाइस का अनुकरण करके Android पर DuckyScript बनाने, कस्टमाइज़ करने, शेड्यूल करने और चलाने देता है, जो अधिकृत परीक्षण और ऑटोमेशन के लिए है। इसमें पेलोड पैरामीटराइज़ेशन, एकाधिक शेड्यूलर ट्रिगर, निष्पादन लॉग और GitHub-समर्थित पेलोड लाइब्रेरी शामिल है जिसमें स्वचालित DuckyScript मान्यकरण और वैकल्पिक Digispark .ino रूपांतरण है।
अवलोकन
- USB HID गैजेट प्रोफ़ाइल (समर्थित/रूट डिवाइसों पर कोई बाहरी USB डोंगल आवश्यक नहीं):
- कीबोर्ड, माउस और कम्पोजिट प्रोफ़ाइलें कॉन्फ़िगरेबल VID/PID, निर्माता/उत्पाद स्ट्रिंग और पावर ड्रॉ के साथ।
- DuckyScript पाइपलाइन:
- मानव-पठनीय समस्याओं/चेतावनियों, प्लेसहोल्डर पैरामीटर, विलंब गुणक और मानव-सदृश समय के लिए वैकल्पिक जिटर के साथ लाइव मान्यकरण।
- पेलोड प्रबंधन:
- नाम/विवरण/टैग/पैरामीटर के साथ पेलोड बनाएं/संपादित करें, त्वरित साझा/निर्यात, और अंतर्निर्मित टेम्पलेट/विज़ार्ड।
- GitHub पेलोड स्टोर:
- स्रोत जोड़ें, रिपॉजिटरी ब्राउज़ करें, मान्यकरण के साथ फ़ाइलें पूर्वावलोकन करें, समर्थित स्क्रिप्ट आयात करें; जहाँ संभव हो DuckyScript स्वचालित रूप से पहचानें और Digispark
.ino स्केच को कनवर्ट करें।
- शेड्यूलर:
- एक बार तिथि/समय पर, ऐप कोल्ड स्टार्ट पर, ऐप फोरग्राउंड पर, या जब HID सत्र सशस्त्र हो (device_connected), वैकल्पिक दैनिक समय विंडो के साथ।
- निष्पादन और लॉग:
- टैब किया गया निष्पादन दृश्य, पैरामीटर संकेत, चलाएँ/रद्द करें, निष्पादन इतिहास, और निर्यात/साफ़ और स्तर फ़िल्टर के साथ संरचित लॉग।
- डिवाइस डायग्नोस्टिक्स:
- डिवाइस, कर्नेल/गैजेट स्थिति, UDC जानकारी, कीबोर्ड लेआउट का स्नैपशॉट; क्लिपबोर्ड पर कॉपी; एमुलेटर पहचान नोट।
नोट: Linux USB गैजेट (ConfigFS) समर्थन वाला एक रूट किया गया डिवाइस आवश्यक है। भौतिक डिवाइस का उपयोग करें क्योंकि एमुलेटर HID व्यवहार को मान्य नहीं कर सकते।
विशेषताएँ
-
पेलोड संपादक और पैरामीटर
- नाम/विवरण/टैग के साथ पेलोड बनाएं।
- डिफ़ॉल्ट मान, आवश्यक फ़्लैग और प्रति-निष्पादन ओवरराइड के साथ टाइप किए गए पैरामीटर जोड़ें।
- लाइन/समस्या मैपिंग और कमांड गणना के साथ अंतर्निर्मित DuckyScript मान्यक।
- एकल पेलोड साझा करें या एक पैक निर्यात करें।
-
GitHub पेलोड स्टोर
- एकाधिक GitHub स्रोत प्रबंधित करें (उपयोगकर्ता/रेपो/शाखा/पथ)।
- निर्देशिकाएँ ब्राउज़ करें और प्रारूप पहचान (DuckyScript, TapDucky JSON, Digispark स्क्रिप्ट (.ino) कनवर्ट) के साथ फ़ाइलें पूर्वावलोकन करें।
- मान्य स्क्रिप्ट सीधे अपनी लाइब्रेरी में आयात करें; असफल मान्यकरण कारण सहित पूर्वावलोकन दिखाते हैं।
-
निष्पादन और परीक्षण
- चलाने से पहले मान्य करें; पैरामीटर मानों के लिए संकेत दें; निष्पादन आईडी के साथ चलाएँ या रद्द करें।
- त्वरित HID परीक्षण: कीबोर्ड कुंजी दबाना, माउस हिलाना और Ctrl+Alt+Del।
- इंजन-आधारित रनटाइम अनुमान (वास्तविक समय मॉडल से मेल खाता है)।
- निष्पादन के दौरान सत्र सक्रिय रखने के लिए वेकलॉक नियंत्रण।
-
शेड्यूलर और ट्रिगर
- ट्रिगर: one_time, app_cold_start, app_foreground, device_connected (सत्र सशस्त्र)।
- वैकल्पिक दैनिक समय विंडो (HH:MM → HH:MM), मध्यरात्रि में रैप-अराउंड सहित।
- शेड्यूल सक्षम/अक्षम करें, संपादित करें और हटाएं; अंतिम रन ट्रैक किया गया।
- गुप्त कोड के माध्यम से डायल शॉर्टकट बाइंडिंग (स्वचालित-आर्म + पृष्ठभूमि निष्पादन)।
- समर्थित कोड: ##38250##, ##38251##, ##38252##, ##38253##
- प्रति कोड बाइंडिंग कुंजी: सक्षम, मोड (अंतिम निष्पादित | चयनित पेलोड), पेलोड (जब मोड = चयनित पेलोड)
-
डिवाइस और HID प्रोफ़ाइल
- कॉन्फ़िगरेबल आईडी/स्ट्रिंग/पावर के साथ कीबोर्ड, माउस या कम्पोजिट प्रोफ़ाइल सक्रिय करें।
- कीबोर्ड लेआउट चयन और कोड/आईडी समाधान।
- स्थिति स्ट्रीम ACTIVE/IDLE, राइटर तत्परता और होस्ट कॉन्फ़िगरेशन अनुरोध दिखाती है।
-
लॉग और इतिहास
- लॉग टैब स्तर फ़िल्टर (सभी/जानकारी/डीबग/चेतावनी/त्रुटि) के साथ, साझा करने के लिए निर्यात, सभी साफ़ करें।
- मेटाडेटा और साझा करने के साथ निष्पादन इतिहास विवरण।
उपयोगकर्ता-सामना
- त्वरित स्थिति कार्ड, पेलोड/लाइब्रेरी सांख्यिकी और शेड्यूलर सारांश के साथ डैशबोर्ड।
- पहली बार सेटअप/आयात के लिए स्पष्ट खाली स्थितियाँ और चरण-दर-चरण विज़ार्ड।
- Material 3 थीमिंग, गतिशील प्रकाश/अंधेरे रंग योजनाएँ।
तकनीकी/आर्किटेक्चरल
- प्लेटफ़ॉर्म चैनल (Android):
- मेथड चैनल:
org.kaijinlab.tap_ducky/gadget
checkRoot, checkSupport, listUdcs, getStatus, getDiagnostics
getKeyboardLayouts, setKeyboardLayout, resolveKeyboardLayoutId, setKeyboardLayoutByCode
activateProfile, deactivate, panicStop, retryOpenHidWriters
executeDuckyScript(script, delayMultiplier, executionId?), cancelExecution(executionId)
- परीक्षण सहायक:
testKeyboardKey(label), testMouseMove(dx,dy,wheel,buttons), testCtrlAltDel()
- इवेंट चैनल:
org.kaijinlab.tap_ducky/gadget_logs
org.kaijinlab.tap_ducky/gadget_status
org.kaijinlab.tap_ducky/gadget_exec
- HID प्रोफ़ाइल मॉडल: कीबोर्ड/माउस/कम्पोजिट VID/PID, स्ट्रिंग, सीरियल, पावर के साथ।
- DuckyScript:
- चरणों में पार्सिंग; DELAY/STRING/कुंजियाँ/रॉ कमांड का समर्थन; प्लेसहोल्डर समाधान; आधार कुंजी विलंब; जिटर।
- मान्यक गंभीरता और लाइन मैपिंग के साथ समस्याएँ लौटाता है; संपादक/स्टोर/निष्पादन प्रवाह में उपयोग किया जाता है।
- TRY/CATCH/END_TRY, WAIT_FOR, SLEEP_UNTIL, FUNCTION तर्क और स्कोप वेरिएबल।
- यूनिकोड पतन मोड (चेतावनी+छोड़ें / छोड़ें / ASCII लिप्यंतरण)।
- निष्पादन स्ट्रीम में संरचित निष्पादन त्रुटि कोड।
- शेड्यूलिंग इंजन:
- ट्रिगर (कोल्ड स्टार्ट, फोरग्राउंड, सशस्त्र, एक बार), दैनिक समय विंडो नियम, SharedPreferences में स्थिरता।
- स्थिति प्रबंधन: Riverpod 3, go_router नेविगेशन, क्लीन रिपॉजिटरी/सर्विसेज/कंट्रोलर्स पृथक्करण।
DuckyScript / कीस्ट्रोक इंजन
TapDucky में Android (Kotlin) पर मूल रूप से लागू एक पूर्ण DuckyScript-शैली इंजन शामिल है जिसमें अभिव्यक्ति मूल्यांकन और संरचित नियंत्रण प्रवाह है। यह कीबोर्ड, माउस/पॉइंटर, समय, वेरिएबल/डिफ़ाइन, फ़ंक्शन और सरल यादृच्छिकता उपयोगिताओं का समर्थन करता है।