
مجموعة أدوات تحليل تطبيقات الجوال في وقت التشغيل مع واجهة مستخدم رسومية ويب، مدعومة بـ Frida، ومكتوبة بلغة Python.
/ | \ ____ __ __ ______ ____
/ ~ \/ _ \| | \/ ___// __ \
\ Y ( <_> ) | /\___ \ ___/
\___|_ / \____/|____//____ >\___ >
\/ House \/ \/
Dynamic Mobile Analysis Tool
Contact: [email protected]
هاوس: أداة تحليل تطبيقات الجوال أثناء التشغيل بواجهة ويب، مدعومة من Frida، مكتوبة بلغة Python. صُممت للمساعدة في تقييم تطبيقات الجوال من خلال ربط الدوال ديناميكيًا واعتراضها، وتهدف إلى جعل كتابة سكريبتات Frida بأبسط صورة ممكنة.
git clone https://github.com/nccgroup/house
cd house
pip3 install -r requirements.txt
pip3 install pipenv
pipenv --python=/usr/bin/python3 install
pipenv --python=/usr/bin/python3 shell
python3 app.py <PORT>
# or:
mkvirtualenv --python=/usr/local/bin/python3 house
workon house
pip install -r requirements.txt
python app.py <PORT>
# or: (only for Mac OS)
git clone https://github.com/nccgroup/house
cd house
pip3 install -r requirements.txt
pip3 install pipenv
pipenv --python=/usr/local/bin/python3 install
pipenv --python=/usr/local/bin/python3 shell
python3 app.py <PORT>
افتراضيًا، يرتبط هاوس بـ http://127.0.0.1:8000.
للحصول على نظرة عامة على إمكانيات هاوس، يمكنك زيارة دليل المستخدم للتفاصيل.


ملاحظة: تأكد من تحديث إصدار Frida لديك إلى >= 12.8.3 لربط دوال /dex/jar
في هذا القسم، نقدم مثالًا صغيرًا لتوضيح الاستخدام الأساسي
لهاوس. تم تنفيذ حالة العرض التوضيحي على تطبيق Android اختبار صغير:
com.ha0k3.overloads.
تأكد من توصيل جهاز Android عبر USB وأن خادم Frida يعمل على الجهاز. تحقق من نجاح تشغيل خادم Frida باستخدام الأمر التالي: frida-ps -U.
ابدأ تطبيق هاوس بتشغيل app.py: python app.py <PORT>.
افتح متصفحًا وانتقل إلى http://127.0.0.1:PORT.
لاحظ عرض معلومات الجهاز على الصفحة، إذا لم تظهر، انقر على زر Refresh أو أعد تشغيل التطبيق وخادم Frida.


sideload. يدعم تحميل stetho جانبيًا في هذه المرحلة؛ مما يسهل علينا فحص واجهة المستخدم والتخزين وما إلى ذلك.





عرض السكريبتات وتتبع الدوال

خطافات للدوال في ملفات dex/jar المحملة ديناميكيًا

خيار النص المصغر

إدارة سكريبتات السجل

عبر هاوس، يمكن للباحثين تغيير الوسائط التي تُمرر إلى الدوال الهدف ديناميكيًا وإعادة توجيهها.

في بعض الأحيان لا يمكن لهاوس تحليل معلومات الوسائط بشكل مثالي. على سبيل المثال، يمكن أن تكون الوسيط من نوع خاص. في التطبيق المثال، تم تنفيذ دالة isLit التي تأخذ كائنًا مخصصًا كوسيط. لمعالجة هذه المواقف، يوفر هاوس أداة "REPL" بسيطة. يمكن للباحثين في مجال الأمن كتابة سكريبت Frida ديناميكيًا في الـ REPL وتعديل سلوك الدوال.

تم توفير عدة دوال REPL من قبل هاوس لتسهيل الاختبار:
inspectObject(obj) يستخدم java.lang.reflect لفحص معلومات الحقول داخل الكائن.setRetval(ret) يأخذ معاملًا ويحاول تحويله إلى نوع الإرجاع الصحيح باستخدام مُنشئ القيمة الأصلية.getStackTrace() سيطبع تتبع الاستدعاءات.
ملاحظة: لربط/اعتراض دوال المُنشئ، أدخل $init كاسم الدالة.
لجعل هاوس يعمل، ستحتاج إلى:
يرجى أيضًا محاولة إعادة تشغيل كل من خادم frida وهاوس، إذا لم يعمل بعد، فيرجى تقديم مشكلة.
غالبًا ما يحدث عند توصيل أجهزة USB متعددة، حاول إعادة تشغيل التطبيق الهدف.
تم اختبار هاوس باستخدام إصدار Frida 12.8.6؛ قد تكون هناك بعض المشكلات مع بعض الإصدارات الأخرى، تأكد أيضًا من تطابق frida-python مع إصدار frida-server. إذا لم يعمل بعد، حاول تشغيل سكريبتات Frida المُنشأة يدويًا لمعرفة ما إذا كانت تعمل.
شكر خاص للمشاريع مفتوحة المصدر التالية التي ألهمت هاوس:
إذا كانت لديك المزيد من الأسئلة حول هاوس، أو ترغب في المساعدة في توسيعه، فلا تتردد في الاتصال:
أو أرسل بريدًا إلكترونيًا إلى: Hao Ke