
एक रनटाइम मोबाइल एप्लीकेशन विश्लेषण टूलकिट जिसमें वेब GUI है, जो Frida द्वारा संचालित है और Python में लिखा गया है।
/ | \ ____ __ __ ______ ____
/ ~ \/ _ \| | \/ ___// __ \
\ Y ( <_> ) | /\___ \ ___/
\___|_ / \____/|____//____ >\___ >
\/ House \/ \/
Dynamic Mobile Analysis Tool
Contact: [email protected]
House: एक रनटाइम मोबाइल एप्लिकेशन विश्लेषण टूलकिट जिसमें वेब GUI है, 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>
डिफ़ॉल्ट रूप से, House http://127.0.0.1:8000 पर बाइंड होता है।
House की क्षमताओं का अवलोकन प्राप्त करने के लिए, आप विवरण के लिए उपयोगकर्ता मैनुअल पर जा सकते हैं।


नोट: /dex/jar फंक्शन हुकिंग के लिए अपने Frida संस्करण को >= 12.8.3 में अपडेट करना सुनिश्चित करें
इस अनुभाग में, House के मूल उपयोग को स्पष्ट करने के लिए एक छोटा उदाहरण दिया गया है।
डेमो केस एक छोटे परीक्षण एंड्रॉइड एप्लिकेशन के विरुद्ध किया गया है:
com.ha0k3.overloads।
सुनिश्चित करें कि एक Android डिवाइस USB के माध्यम से प्लग इन है और Frida सर्वर
डिवाइस पर चल रहा है। निम्नलिखित कमांड का उपयोग करके Frida सर्वर सफलतापूर्वक स्पॉन किया गया है यह जांचें: frida-ps -U।
app.py चलाकर House एप्लिकेशन प्रारंभ करें: python app.py <PORT>।
एक ब्राउज़र खोलें और http://127.0.0.1:PORT पर जाएं।
देखें कि पेज पर डिवाइस की जानकारी प्रदर्शित होती है, यदि नहीं, तो 'Refresh' बटन पर क्लिक करें या एप्लिकेशन और Frida सर्वर को पुनरारंभ करें।


sideload का समर्थन करता है। यह इस बिंदु पर stetho साइड लोडिंग का समर्थन करता है; जो हमारे लिए UI; स्टोरेज आदि की जांच करना आसान बनाता है।





स्क्रिप्ट रेंडरिंग और फ़ंक्शन ट्रेसिंग

डायनामिक रूप से लोड की गई dex/jar फ़ाइलों में फ़ंक्शन के लिए हुक

मिनी स्क्रिप्ट विकल्प

इतिहास स्क्रिप्ट प्रबंधन

House के माध्यम से, शोधकर्ता लक्ष्य फ़ंक्शन को पास किए जा रहे तर्कों को गतिशील रूप से बदल सकते हैं
और इसे आगे भेज सकते हैं।

कभी-कभी House तर्क जानकारी को पूरी तरह से पार्स नहीं कर सकता है। उदाहरण के लिए, एक
तर्क विशेष प्रकार का हो सकता है। उदाहरण ऐप में, इसने isLit फ़ंक्शन लागू किया है जो अपने तर्क के रूप में अनुकूलित ऑब्जेक्ट लेता है। ऐसी स्थितियों से निपटने के लिए, House द्वारा एक सरल "REPL" प्रदान किया गया है। सुरक्षा शोधकर्ता
REPL में गतिशील रूप से Frida स्क्रिप्ट टाइप कर सकते हैं और फ़ंक्शन व्यवहार को संशोधित कर सकते हैं।

परीक्षण को आसान बनाने के लिए House द्वारा कई REPL फ़ंक्शन प्रदान किए गए थे:
inspectObject(obj) किसी ऑब्जेक्ट के भीतर फ़ील्ड जानकारी का निरीक्षण करने के लिए java.lang.reflect का उपयोग करता है।setRetval(ret) एक पैरामीटर लेता है और मूल रिटर्न वैल्यू के कंस्ट्रक्टर का उपयोग करके इसे सही रिटर्न प्रकार में डालने का प्रयास करेगा।getStackTrace() स्टैक ट्रेस प्रिंट करेगा।
नोट: कंस्ट्रक्टर विधि हुकिंग/इंटरसेप्ट के लिए, विधि नाम के रूप में $init इनपुट करें।
House को काम करने के लिए; आपको चाहिए:
कृपया दोनों frida सर्वर और House को पुनरारंभ करने का प्रयास करें, यदि अभी भी काम नहीं कर रहा है, तो एक issue फ़ाइल करें।
अक्सर तब होता है जब कई USB डिवाइस कनेक्टेड हों, लक्ष्य एप्लिकेशन को पुनरारंभ करने का प्रयास करें।
House का परीक्षण Frida संस्करण 12.8.6 का उपयोग करके किया गया है; कुछ अन्य संस्करणों के साथ कुछ समस्याएँ हो सकती हैं, यह भी सुनिश्चित करें कि frida-python का संस्करण frida-server के संस्करण से मेल खाता हो। यदि अभी भी काम नहीं कर रहा है, तो यह देखने के लिए मैन्युअल रूप से उत्पन्न Frida स्क्रिप्ट चलाने का प्रयास करें कि यह काम करता है या नहीं।
House के लिए प्रेरणा के लिए निम्नलिखित ओपन-सोर्स प्रोजेक्ट्स का विशेष धन्यवाद:
यदि आपके पास House के बारे में और प्रश्न हैं, या इसे विस्तारित करने में मदद करना चाहते हैं, तो बेझिझक संपर्क करें:
या एक ईमेल भेजें: Hao Ke