TapDucky - أداة حقن ضغطات المفاتيح عبر USB HID لنظام Android
TapDucky - أداة حقن ضغطات المفاتيح عبر USB HID لنظام Android
مشغل DuckyScript مفتوح المصدر لأجهزة Android المجذّرة مع دعم USB Gadget (ConfigFS)
TapDucky يتيح لك إنشاء وتخصيص وجدولة وتشغيل DuckyScript على Android عن طريق محاكاة لوحة مفاتيح أو فأرة أو جهاز HID مركب لأغراض الاختبار المصرح به والأتمتة. يتضمن معاملات الحمولات، ومشغلات جدولة متعددة، وسجلات تنفيذ، ومكتبة حمولات مدعومة من GitHub مع التحقق التلقائي من DuckyScript وتحويل Digispark .ino الاختياري.
نظرة عامة
- ملفات تعريف أجهزة USB HID (بدون الحاجة إلى دونجل USB خارجي على الأجهزة المدعومة/المجذّرة):
- ملفات تعريف لوحة المفاتيح والفأرة والمركب مع VID/PID قابل للتعديل، وسلاسل الشركة المصنعة/المنتج، واستهلاك الطاقة.
- خط أنابيب DuckyScript:
- تحقق مباشر مع مشكلات/تحذيرات قابلة للقراءة البشرية، ومعاملات عنصر نائب، ومضاعف تأخير، وارتعاش اختياري لتوقيت يشبه البشر.
- إدارة الحمولات:
- إنشاء/تعديل الحمولات مع الاسم/الوصف/العلامات/المعاملات، ومشاركة/تصدير سريع، وقوالب/معالج مدمج.
- متجر حمولات GitHub:
- إضافة مصادر، تصفح المستودعات، معاينة الملفات مع التحقق، استيراد البرامج النصية المدعومة؛ الكشف التلقائي عن DuckyScript وتحويل رسومات Digispark
.ino عند الإمكان.
- المجدول:
- مرة واحدة في تاريخ/وقت، عند بدء التطبيق البارد، عند ظهور التطبيق في المقدمة، أو عند تجهيز جلسة HID (device_connected)، مع نافذة زمنية يومية اختيارية.
- التنفيذ والسجلات:
- عرض تنفيذ مبوب، مطالبات المعاملات، تشغيل/إلغاء، سجل التنفيذ، وسجلات منظمة مع التصدير والمسح وفلتر المستوى.
- تشخيص الجهاز:
- لقطة سريعة للجهاز، حالة kernel/gadget، معلومات UDC، تخطيطات لوحة المفاتيح؛ نسخ إلى الحافظة؛ ملاحظة كشف المُحاكي.
ملاحظة: يلزم وجود جهاز مجذّر مع دعم USB gadget (ConfigFS) في Linux. استخدم جهازًا فعليًا لأن المحاكيات لا يمكنها التحقق من سلوك HID.
الميزات
-
محرر الحمولات والمعاملات
- إنشاء حمولات بالاسم/الوصف/العلامات.
- إضافة معاملات مكتوبة بقيم افتراضية، علامات إلزامية، وتجاوزات لكل تنفيذ.
- مدقق DuckyScript مدمج مع ربط السطر/المشكلة وعدد الأوامر.
- مشاركة حمولة واحدة أو تصدير حزمة.
-
متجر حمولات GitHub
- إدارة مصادر GitHub متعددة (المستخدم/المستودع/الفرع/المسار).
- تصفح الدلائل ومعاينة الملفات مع كشف التنسيق (DuckyScript، TapDucky JSON، نص Digispark (.ino) المحول).
- استيراد البرامج النصية المُتحقق منها مباشرة إلى مكتبتك؛ تظهر حالات الفشل في التحقق معاينة مسببة.
-
التنفيذ والاختبار
- التحقق قبل التشغيل؛ طلب قيم المعاملات؛ تشغيل أو إلغاء مع معرفات التنفيذ.
- اختبارات HID سريعة: ضغط مفتاح لوحة المفاتيح، تحريك الفأرة، وCtrl+Alt+Del.
- تقدير وقت التشغيل استنادًا إلى المحرك (يطابق نموذج التوقيت الفعلي).
- التحكم في Wakelock للحفاظ على الجلسات نشطة أثناء التنفيذ.
-
المجدول والمشغلات
- المشغلات: 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/keys/أوامر raw؛ حل العناصر النائبة؛ تأخير المفتاح الأساسي؛ الارتعاش.
- المدقق يرجع مشكلات مع الخطورة وربط السطر؛ يُستخدم عبر المحرر/المتجر/التنفيذ.
- TRY/CATCH/END_TRY، WAIT_FOR، SLEEP_UNTIL، وسيطات FUNCTION، ومتغيرات النطاق.
- أوضاع احتياطية لـ Unicode (تحذير+تخطي / تخطي / تحويل ASCII).
- رموز خطأ التنفيذ المنظمة في تيار التنفيذ.
- محرك الجدولة:
- المشغلات (بدء بارد، مقدمة، مجهز، مرة واحدة)، قواعد النافذة الزمنية اليومية، الثبات في SharedPreferences.
- إدارة الحالة: Riverpod 3، go_router للملاحة، فصل نظيف بين المستودعات/الخدمات/وحدات التحكم.
محرك DuckyScript / ضغطات المفاتيح
TapDucky يتضمن محركًا كاملاً بأسلوب DuckyScript مطبقًا أصليًا على Android (Kotlin) مع تقييم التعبيرات والتحكم في التدفق المنظم. يدعم لوحة المفاتيح، الفأرة/المؤشر، التوقيت، المتغيرات/التعاريف، الدوال، وأدوات عشوائية بسيطة.