
Hooker Android अनुप्रयोगों के गतिशील विश्लेषण के लिए एक ओपनसोर्स परियोजना है। यह परियोजना विभिन्न उपकरण और अनुप्रयोग प्रदान करती है जिनका उपयोग किसी लक्षित अनुप्रयोग द्वारा किए गए किसी भी API कॉल को स्वचालित रूप से रोकने और संशोधित करने के लिए किया जा सकता है।
Hooker, Android अनुप्रयोगों के गतिशील विश्लेषण के लिए एक ओपनसोर्स परियोजना है। यह परियोजना विभिन्न उपकरण और अनुप्रयोग प्रदान करती है जिनका उपयोग किसी लक्षित अनुप्रयोग द्वारा किए गए किसी भी API कॉल को स्वचालित रूप से इंटरसेप्ट और संशोधित करने के लिए किया जा सकता है।
यह इन कॉलों को इंटरसेप्ट करने और उनकी सभी प्रासंगिक जानकारी (पैरामीटर, लौटाए गए मान, ...) एकत्र करने के लिए Android Substrate फ्रेमवर्क का उपयोग करता है। एकत्रित जानकारी को या तो ElasticSearch में या JSON फ़ाइलों में संग्रहीत किया जा सकता है।
किसी समूह के अनुप्रयोगों द्वारा किए गए किसी भी API कॉल को एकत्र करने के लिए विश्लेषण के निष्पादन को स्वचालित करने हेतु पायथन स्क्रिप्ट्स का एक सेट भी प्रदान किया गया है।
Android-Hooker एक प्रूफ ऑफ कॉन्सेप्ट है जो Substrate फ्रेमवर्क पर निर्भर करता है। इसका मतलब है कि यदि आपके डिवाइस पर Substrate सही ढंग से स्थापित नहीं है तो Hooker काम नहीं कर सकता। फिलहाल, लेखकों ने Android संस्करण 4.1 और 4.2 वाले डिवाइसों पर Substrate को सफलतापूर्वक स्थापित किया है। यदि आप जानते हैं कि उच्च संस्करणों पर 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 API डाउनलोड करें।
सभी आवश्यक निर्भरताओं को बनाने और स्थापित करने में आपकी सहायता के लिए एक इंस्टॉल स्क्रिप्ट प्रदान की गई है। यदि आप इस स्क्रिप्ट का उपयोग करना चाहते हैं, तो सुनिश्चित करें कि आपके पास निम्नलिखित निर्भरताएँ हैं:
# 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 होस्ट आपके android एमुलेटर से किसी भिन्न होस्ट पर है, तो आपको नेटवर्क के माध्यम से ट्रैफ़िक को रीडायरेक्ट करने की आवश्यकता होगी। ऐसा करने के लिए, आप 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 पढ़ें।