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
DuckyScript / कीस्ट्रोक इंजन
TapDucky में Android (Kotlin) पर मूल रूप से लागू एक पूर्ण DuckyScript-शैली इंजन शामिल है जिसमें अभिव्यक्ति मूल्यांकन और संरचित नियंत्रण प्रवाह है। यह कीबोर्ड, माउस/पॉइंटर, समय, वेरिएबल/डिफ़ाइन, फ़ंक्शन और सरल यादृच्छिकता उपयोगिताओं का समर्थन करता है।
समर्थित कमांड परिवार (उच्च स्तर):
- टेक्स्ट और समय: STRING, STRINGLN, STRING_DELAY, DELAY, DEFAULTDELAY/DEFAULT_DELAY, REM (और REM_BLOCK)
- कुंजियाँ और कॉम्बो: ENTER, TAB, ESC, SPACE, BACKSPACE, तीर, नेविगेशन कुंजियाँ (HOME/END/PGUP/PGDN/INS/DEL), F1–F24, मीडिया कुंजियाँ, नम्पैड कुंजियाँ
- मॉडिफायर कॉम्बो: GUI/WIN/COMMAND, CTRL/CONTROL, ALT/OPTION, SHIFT अतिरिक्त कुंजी टोकन के साथ (जैसे GUI r, CTRL ALT DEL)
- होल्ड/रिलीज़ और इंजेक्ट किए गए मॉडिफायर: HOLD, RELEASE, INJECT_MOD (बाद के कुंजी टैप पर मॉडिफायर मास्क सेट/साफ़ करें)
- पॉइंटर/माउस: MOUSE/POINTER CLICK, HOLD, DRAG, MOVE, SCROLL बटन LEFT/RIGHT/MIDDLE और सापेक्ष dx/dy तथा पुनरावृत्ति गणना के साथ
- नियंत्रण प्रवाह: IF / ELSE IF / ELSE / END_IF, WHILE / END_WHILE
- फ़ंक्शन और कॉल: FUNCTION / END_FUNCTION, CALL_FUNCTION, RETURN
- वेरिएबल और स्थिरांक: VAR $name = expr, DEFINE NAME value; $?(निकास कोड) अहस्ताक्षरित 16-बिट के रूप में बनाए रखा जाता है
- यादृच्छिक जनरेटर: RANDOM_LOWERCASE_LETTER, RANDOM_UPPERCASE_LETTER, RANDOM_LETTER, RANDOM_NUMBER, RANDOM_SPECIAL, RANDOM_CHAR
- अटैक मोड पासथ्रू: ATTACKMODE (जहाँ लागू हो, गैजेट प्रबंधक परत को प्रॉक्सी)
व्यवहार पर नोट:
- डिफ़ॉल्ट विलंब: DEFAULTDELAY/DEFAULT_DELAY प्रत्येक निष्पादन योग्य कमांड के बाद लागू एक आधार विलंब सेट करता है (रन-टाइम विलंब गुणक द्वारा स्केल किया गया)।
- अभिव्यक्ति मूल्यांकक: IF/WHILE और VAR असाइनमेंट में अंकगणित, तुलना और तार्किक अभिव्यक्तियाँ समर्थित हैं; शून्येतर सत्य है।
- पुनरावृत्ति: REPEAT N प्रीप्रोसेसिंग के दौरान पिछले कमांड की N बार प्रतिलिपि बनाता है।
- कीबोर्ड मैपिंग: लेआउट चयन के साथ पूर्ण HID उपयोग मैपिंग; सामान्य उपनाम समर्थित (ESC/ESCAPE, BKSP/BACKSPACE, आदि)।
- निष्पादन स्ट्रीम: प्रगति के लिए चरण/प्रारंभ/किया/त्रुटि घटनाएँ उत्सर्जित होती हैं, वास्तविक समय UI अद्यतन और लॉग के लिए।
माउस/पॉइंटर सिंटैक्स त्वरित संदर्भ:
- MOUSE CLICK [LEFT|RIGHT|MIDDLE] [num]
- MOUSE HOLD [LEFT|RIGHT|MIDDLE] [dx] [dy] [num]
- MOUSE DRAG [LEFT|RIGHT|MIDDLE] [dx] [dy] [num]
- MOUSE MOVE [dx] [dy] [num]
- MOUSE SCROLL [UP|DOWN] [num]
क्षमता मैट्रिक्स (चयनित):
नोट: मान्यक निष्पादन से पहले सिंटैक्स समस्याएँ, अज्ञात कमांड और संरचना त्रुटियाँ सामने लाता है। लाइन नंबरों के साथ इन-UI मान्यकरण परिणामों के लिए पेलोड संपादक देखें।
निष्पादन समय मुख्य बातें:
- पृथक निष्पादन विलंब गुणक और टाइपिंग गति कारक (वैकल्पिक जोखिम भरी तेज़ मोड के साथ)।
- लंबे STRING रन के दौरान आवधिक फ्लश होस्ट कीबफर ओवररन को कम करने के लिए।
- क्षणिक HID डिस्कनेक्ट के लिए होस्ट-जागरूक बैकऑफ़ और ग्रेस विंडो।
- जब माइक्रो-स्लीप उपलब्ध न हो तो हार्डवेयर-जागरूक अनुमान अंशांकन।
स्पष्ट कुंजी और उपनाम समर्थन
नोट: सूचीबद्ध उपनामों के अलावा, TapDucky स्नेक_केस रूपों जैसे down_arrow, up_arrow, left_arrow, right_arrow, page_up, page_down, print_screen, scroll_lock, num_lock, caps_lock, string_delay, default_delay आदि को स्वीकार करता है। ये आंतरिक रूप से सामान्यीकृत होते हैं।
-
मॉडिफायर (बाएँ/दाएँ वेरिएंट जहाँ ध्यान दिया गया है):
- बाएँ: CTRL/CONTROL, SHIFT, ALT/OPTION, GUI/WINDOWS/COMMAND/WIN
- दाएँ: RCTRL/RCONTROL, RSHIFT, RALT, RGUI/RWINDOWS/RCOMMAND
-
सिस्टम/नेविगेशन कुंजियाँ (उपनाम शामिल):
- ENTER
- ESC/ESCAPE
- BACKSPACE/BKSP
- TAB
- SPACE
- DELETE/DEL
- INSERT/INS
- HOME, END
- PAGEUP, PAGEDOWN
- तीर: UP/UPARROW, DOWN/DOWNARROW, LEFT/LEFTARROW, RIGHT/RIGHTARROW
- LOCKS: CAPSLOCK, NUMLOCK, SCROLLLOCK
- PRINTSCREEN/PRINTSCRN/PRTSCN
- PAUSE/BREAK
- MENU/APP
-
फ़ंक्शन कुंजियाँ:
-
नम्पैड कुंजियाँ (उपनाम शामिल):
- NUMPAD_0/KP0, NUMPAD_1/KP1, NUMPAD_2/KP2, NUMPAD_3/KP3, NUMPAD_4/KP4,
NUMPAD_5/KP5, NUMPAD_6/KP6, NUMPAD_7/KP7, NUMPAD_8/KP8, NUMPAD_9/KP9
- NUMPAD_PLUS/KPPLUS, NUMPAD_MINUS/KPMINUS, NUMPAD_MULTIPLY/KPASTERISK,
NUMPAD_DIVIDE/KPSLASH, NUMPAD_ENTER/KPENTER, NUMPAD_PERIOD/KPDOT
-
मीडिया कुंजियाँ (उपनाम शामिल):
- MEDIA_PLAYPAUSE/PLAYPAUSE
- MEDIA_STOP/STOPCD
- MEDIA_PREV/PREVIOUSSONG
- MEDIA_NEXT/NEXTSONG
- MEDIA_VOLUMEUP/VOLUMEUP
- MEDIA_VOLUMEDOWN/VOLUMEDOWN
- MEDIA_MUTE/MUTE
-
अल्फ़ान्यूमेरिक शॉर्टकट:
- एकल अक्षर A–Z और अंक 0–9 संबंधित HID उपयोग कोड पर मैप होते हैं।
उदाहरण
- CTRL ALT DEL
- GUI r
- SHIFT TAB
- STRING_DELAY 15 Hello world
- MOUSE CLICK LEFT 2
- MOUSE MOVE 40 0 3
शेड्यूलर ट्रिगर (विवरण)
- एक बार
- निर्दिष्ट तिथि/समय पर एक बार चलता है, यदि वैकल्पिक समय विंडो के भीतर हो।
- ऐप प्रारंभ (कोल्ड स्टार्ट)
- ऐप सच्चे कोल्ड स्टार्ट से शुरू होने पर एक बार चलता है (पृष्ठभूमि से फिर से शुरू होने पर नहीं)।
- ऐप खोलें (फोरग्राउंड)
- हर बार जब ऐप फोरग्राउंड में आता है, चलता है; कई बार चल सकता है।
- सत्र सशस्त्र
- तब चलता है जब HID सत्र सशस्त्र होता है (USB गैजेट UDC से बाइंड होता है) - आमतौर पर जब आप "आर्म सत्र" पर टैप करते हैं।
पेलोड प्रबंधन
- पैरामीटर और डिफ़ॉल्ट के साथ पेलोड बनाएं/संपादित करें।
- लाइव स्क्रिप्ट मान्य करें; DuckyScript सिंटैक्स संदर्भ खोलें।
- व्यक्तिगत पेलोड साझा करें या एक पैक निर्यात करें; GitHub स्टोर से आयात करें।
डिवाइस डायग्नोस्टिक्स
- कर्नेल/UDC सूची, HID राइटर तत्परता, सक्रिय प्रोफ़ाइल स्थिति, होस्ट कॉन्फ़िगरेशन अनुरोध गणना और अधिक देखें।
- मानों को क्लिपबोर्ड पर कॉपी करें और स्नैपशॉट/डायग्नोस्टिक्स को स्वतंत्र रूप से ताज़ा करें।
डेवलपर नोट्स
- सभी विशेषाधिकार प्राप्त HID कार्रवाइयों के लिए रूट और ConfigFS गैजेट समर्थन वाले कर्नेल की आवश्यकता होती है।
- Android 8+ पर, सूचनाएँ एक समर्पित चैनल का उपयोग करती हैं; फोरग्राउंड सेवा HID सत्र को सक्रिय रखती है।
- ऐप रनटाइम UI स्ट्रिंग को Android संसाधनों से सेवा परत में जोड़ने से बचता है ताकि संसाधन मर्ज जोखिम कम हो।
आवश्यकताएँ
- Linux USB गैजेट (ConfigFS) समर्थन वाला रूट किया गया Android डिवाइस
- Android 11+
- भौतिक डिवाइस (एमुलेटर USB गैजेट व्यवहार को मान्य नहीं कर सकते)
स्थापना
- रिलीज़ से नवीनतम APK डाउनलोड करें:
-
एप्लिकेशन स्थापित करें:
- यदि आवश्यक हो तो अज्ञात स्रोतों से स्थापना सक्षम करें।
- जब आपके रूट प्रबंधक द्वारा संकेत दिया जाए तो रूट अनुदान दें।
-
लॉन्च करें और कॉन्फ़िगर करें:
- TapDucky खोलें।
- उन्नत सेटिंग्स में, HID प्रोफ़ाइल (कीबोर्ड/माउस/कम्पोजिट), VID/PID और कीबोर्ड लेआउट चुनें/समायोजित करें।
- एक सत्र सशस्त्र करें और निष्पादन से एक परीक्षण आदेश चलाएँ।
उपयोग
पेलोड चलाना
- एक पेलोड बनाएँ या आयात करें (पेलोड टैब)।
- इसे मान्य करें और यदि आवश्यक हो तो पैरामीटर जोड़ें।
- निष्पादन पर जाएँ, पेलोड चुनें, पैरामीटर भरें और चलाएँ।
- परिणामों के लिए लॉग और निष्पादन इतिहास देखें।
पेलोड शेड्यूल करना
- शेड्यूलर खोलें।
- एक शेड्यूल बनाएँ, ट्रिगर चुनें (एक बार, कोल्ड स्टार्ट, फोरग्राउंड, सशस्त्र)।
- वैकल्पिक रूप से एक दैनिक समय विंडो और पैरामीटर ओवरराइड सेट करें।
- सहेजें और सुनिश्चित करें कि शेड्यूल सक्षम है।
GitHub स्टोर से आयात करें
- पेलोड स्टोर खोलें।
- स्रोत प्रबंधित करें (
owner/repo या शाखा/पथ के साथ पूर्ण URL जोड़ें)।
- फ़ाइलों का पूर्वावलोकन करें; TapDucky DuckyScript को मान्य करता है और Digispark स्केच को कनवर्ट कर सकता है।
- समर्थित फ़ाइलों को सीधे अपने पेलोड में आयात करें।
स्क्रीनशॉट
योगदान
योगदान का स्वागत है! यदि आप TapDucky को बेहतर बनाने में मदद करना चाहते हैं:
- रिपॉजिटरी को फ़ोर्क करें।
- अपनी सुविधा या बग फिक्स के लिए एक नई शाखा बनाएँ।
- अपने प्रस्तावित परिवर्तनों के साथ एक पुल अनुरोध सबमिट करें।
लाइसेंस
यह प्रोजेक्ट GNU GPLv3 लाइसेंस के अंतर्गत लाइसेंस प्राप्त है। LICENSE देखें।
समर्थन
यदि आप किसी समस्या का सामना करते हैं या प्रश्न हैं, तो कृपया GitHub रिपॉजिटरी पर एक समस्या खोलें या अनुरक्षक से संपर्क करें।
KaijinLab के और ऐप्स!