
Hooker هو مشروع مفتوح المصدر للتحليلات الديناميكية لتطبيقات أندرويد. يوفر هذا المشروع أدوات وتطبيقات متنوعة يمكن استخدامها لاعتراض وتعديل أي استدعاءات API تلقائيًا يقوم بها التطبيق المستهدف.
Hooker هو مشروع مفتوح المصدر للتحليل الديناميكي لتطبيقات أندرويد. يوفر هذا المشروع أدوات وتطبيقات متنوعة يمكن استخدامها لاعتراض وتعديل أي استدعاءات لواجهات برمجة التطبيقات (API) تقوم بها التطبيقات المستهدفة تلقائيًا.
يعتمد على إطار عمل Android Substrate لاعتراض هذه الاستدعاءات وتجميع جميع معلوماتها السياقية (المعلمات، القيم المُرجعة، ...). يمكن تخزين المعلومات المجمعة إما في ElasticSearch أو في ملفات JSON.
يتم أيضًا توفير مجموعة من نصوص Python لأتمتة تنفيذ التحليل لجمع أي استدعاءات API تقوم بها مجموعة من التطبيقات.
Android-Hooker هو إثبات مفهوم يعتمد على إطار عمل Substrate. وهذا يعني أن Hooker لا يمكن أن يعمل إذا لم يتم تثبيت Substrate بشكل صحيح على جهازك. في الوقت الحالي، نجح المؤلفون في تثبيت Substrate على أجهزة تعمل بإصدارات أندرويد 4.1 و4.2. إذا كنت تعرف كيفية تثبيت Substrate على إصدارات أحدث، فيُرجى إخبارنا عبر البريد الإلكتروني على [email protected] وسنكون سعداء بدمج ذلك في المشروع.
يتكون Hooker من عدة وحدات:
قمنا بتطوير Hooker باستخدام نظام Debian 64-بت، وبالتالي قد يفشل في العمل بشكل صحيح على الأنظمة الأخرى بسبب مسارات أو معاملات غير صحيحة. نحن نقدر كثيرًا مساعدتك في تحديد حالات عدم التوافق هذه. يُرجى الإبلاغ عن مشكلة في متتبع الأخطاء الخاص بنا إذا واجهت أي خطأ أثناء استخدامه.
لاستخدام Hooker، تحتاج إلى خادم واحد على الأقل قمت بتثبيت ما يلي عليه:
ترتبط هذه الخطوة بتثبيت ElasticSearch. يُرجى تنزيل واتباع الوثائق عبر الإنترنت الخاصة بـ ElasticSearch: http://www.elasticsearch.org/overview/elkdownloads/. يمكنك إما تثبيت elasticsearch على مضيف واحد أو نشر مجموعة من عُقد elasticsearch.
يمكنك تنزيل حزمة Android هنا. إذا كنت تريد استخدام سكربت تثبيت Hooker، فيجب عليك:
تأكد من تعيين متغير البيئة ANDROID_HOME الخاص بك: $ export ANDROID_HOME=/path/to/your/sdk/folder
قم بتنزيل واجهات برمجة تطبيقات SDK من مدير SDK الخاص بك.
يتم توفير سكربت تثبيت لمساعدتك في بناء وتثبيت جميع التبعيات الضرورية. إذا كنت تريد استخدام هذا السكربت، فتأكد من توفر التبعيات التالية:
# openjdk-7-jdk, ant, python-setuptools (just apt install them)
عندما تكون مستعدًا، قم بتشغيل سكربت التثبيت في الدليل الجذر لـ Hooker:
$ ./install.sh
$ $ANDROID_HOME/tools/android list target.cd tools/emulatorCreator && python HookerInstaller.py -s SDK_PATH -a Hooker_test -t ANDROID_TARGET -d AVD_DIRECTORY،Menu > System Settings > Security > Screen lock > Noneولمزيد من الفائدة، يمكنك مشاهدة فيديو حول كيفية إعداد محاكٍ هنا
إذا كان مضيف elasticsearch الخاص بك على مضيف مختلف عن محاكي الأندرويد الخاص بك، فستحتاج إلى إعادة توجيه حركة المرور عبر الشبكة. للقيام بذلك، يمكنك استخدام socat:
$ socat -s -v TCP4-LISTEN:9200,fork,ignoreeof,reuseaddr TCP4:192.168.98.11:9200,ignoreeof
إذا كان لديك خطأ بخصوص محاكاة OpenGLES (Could not load OpenGLES emulation library)، فيتعين عليك تعديل ldconfig (بصلاحيات الجذر):
# echo "/path/to/your/sdk/tools/lib" > /etc/ld.so.conf.d/android.conf
# ldconfig
شاهد هذا الفيديو لمشاهدة عرض توضيحي حول كيفية إجراء تجربة يدوية لتحليل تطبيق معين.
إذا كنت تريد استخدام Hooker على أجهزة حقيقية، فيُرجى قراءة ملف README المحدد أولًا.
hooker_xp/sampleManualAnalysis.conf،hooker_xp/sampleAutomaticAnalysis.conf،*RealDevice*،يستخدم Hooker ElasticSearch لتخزين الأحداث وKibana كواجهة أمامية لتحليلها. لمساعدتك في تحليل التطبيقات، قمنا بتضمين مثال للوحة معلومات Kibana في الدليل tools/kibana-dashboard. لاستخدامها، ستحتاج إلى تشغيل أول تجربة ثم استيراد الملف filekibana-export.json. لاستيراد لوحة معلومات، عليك الانتقال إلى الرابط http://localhost:5601 ثم:
Settings -> Objects،Import،يوجد سكربت التجربة بلغة Python في الدليل hooker_xp:
$ cd hooker_xp && python hooker_xp.py -c yourAnalysisConfigurationFile.conf
يجب أن ترى سجلات python توضح لك ما يحدث.
سيسعدنا أن تساعدنا في تحسين هذا العمل. يُرجى استخدام ميزات github لتقديم إصلاحات الأخطاء والتحسينات الخاصة بك.
تم إطلاق مشروع Hooker بواسطة Georges Bossert وDimitri Kirchner. كلاهما يعمل لدى AMOSSYS، وهي شركة فرنسية لأمن تكنولوجيا المعلومات http://www.amossys.fr.
هذا البرنامج مرخص بموجب رخصة GPLv3. راجع ملف LICENSE في الدليل العلوي للتوزيع للحصول على النص الكامل للترخيص.