عن المشروع

unidbg هو مشروع مفتوح المصدر قائم على جافا مصمم لمحاكاة مكتبات أندرويد الأصلية (ELF) وملفات iOS الثنائية (Mach-O). يُستخدم بشكل أساسي في أبحاث الأمان والهندسة العكسية والتحليل الديناميكي لتطبيقات الهواتف المحمولة. تشمل الإمكانات الرئيسية: - **دعم المعماريات**: محاكاة كود ARM32 وARM64 الثنائي. - **واجهات خلفية متعددة**: يدعم Unicorn وdynarmic وApple M1 hypervisor (لمحاكاة ARM64 سريعة على macOS) وLinux KVM على Raspberry Pi. - **تصحيح بمساعدة الذكاء الاصطناعي (MCP)**: يدمج بروتوكول سياق النموذج (MCP) للسماح لأدوات الذكاء الاصطناعي (مثل Cursor) بفحص السجلات والذاكرة والتفكيك ديناميكيًا، وتعيين نقاط التوقف، وتتبع التعليمات، واستدعاء الدوال الأصلية أثناء المحاكاة. - **دعم الربط (Hooking)**: يدمج الربط المضمّن عبر Dobby، وربط استيراد أندرويد عبر xHook، وربط iOS عبر fishhook وsubstrate وwhale. - **محاكاة JNI**: يدعم JNI Invocation API وJavaVM وJNIEnv، مما يسمح بتنفيذ JNI_OnLoad. - **كشف تسرب الذاكرة**: يتتبع تخصيصات ذاكرة الضيف ويولّد تقارير مع تتبعات ARM للضيف وتتبعات مكدس جافا للمضيف. - **مجموعة العمال**: يوفر مجموعة محاكيات آمنة للخيوط لتقليل عبء تهيئة الموارد أثناء معالجة المهام المتزامنة. - **التصحيح والتتبع**: يتميز بمصحح أخطاء عبر الطرفية، وGDB stub، وتتبع التعليمات، وتتبع قراءة/كتابة الذاكرة.