
पैकर्स, प्रोटेक्टर्स, ऑबफस्केटर्स और विचित्रताओं के लिए एंड्रॉइड ऐप्लिकेशन पहचानकर्ता - PEiD for Android
APKiD आपको जानकारी देता है कि कोई APK कैसे बनाया गया था। यह कई कंपाइलर, पैकर, ऑब्फस्केटर और अन्य अजीब चीज़ों की पहचान करता है। यह Android के लिए PEiD है।

इस टूल का उपयोग किन चीज़ों के लिए किया जा सकता है, इस पर अधिक जानकारी के लिए देखें:
pip install apkid
आप APKiD को Docker के साथ भी चला सकते हैं! बेशक, इसके लिए आवश्यक है कि आपके पास git और Docker इंस्टॉल हों।
Docker का उपयोग करने का तरीका यहां दिया गया है:
git clone https://github.com/rednaga/APKiD
cd APKiD/
docker build . -t rednaga:apkid
docker/apkid.sh ~/reverse/targets/android/example/example.apk
[+] APKiD 2.1.0 :: from RedNaga :: rednaga.io
[*] example.apk!classes.dex
|-> compiler : dx
usage: apkid [-h] [-v] [-t TIMEOUT] [-r] [--scan-depth SCAN_DEPTH]
[--entry-max-scan-size ENTRY_MAX_SCAN_SIZE] [--typing {magic,filename,none}] [-j]
[-o DIR]
[FILE [FILE ...]]
APKiD - Android Application Identifier v2.1.2
positional arguments:
FILE apk, dex, or directory
optional arguments:
-h, --help show this help message and exit
-v, --verbose log debug messages
scanning:
-t TIMEOUT, --timeout TIMEOUT Yara scan timeout (in seconds)
-r, --recursive recurse into subdirectories
--scan-depth SCAN_DEPTH how deep to go when scanning nested zips
--entry-max-scan-size ENTRY_MAX_SCAN_SIZE max zip entry size to scan in bytes, 0 = no limit
--typing {magic,filename,none} method to decide which files to scan
output:
-j, --json output scan results in JSON format
-o DIR, --output-dir DIR write individual results here (implies --json)
यदि आपको कोई ऐसा APK या DEX मिलता है जिसे APKiD पहचान नहीं पाता, तो कृपया एक GitHub issue खोलें और हमें बताएं:
हम "कुछ दिलचस्प" चीज़ों का पता लगाने के लिए आपके किसी भी प्रकार के विचार के लिए तैयार हैं, इसलिए स्वयं को केवल पैकर, कंपाइलर या ऑब्फस्केटर तक सीमित न रखें। यदि कोई दिलचस्प anti-disassembler, anti-vm, anti-* ट्रिक है, तो कृपया एक issue बनाएं।
Pull requests का स्वागत है। यदि आप एक नया नियम सबमिट कर रहे हैं, तो APK / DEX का फ़ाइल हैश अवश्य शामिल करें ताकि हम नियम की जांच कर सकें।
यह टूल एक दोहरे लाइसेंस के अंतर्गत उपलब्ध है: एक व्यावसायिक लाइसेंस जो बंद स्रोत परियोजनाओं के लिए उपयुक्त है और एक GPL लाइसेंस जिसका उपयोग ओपन सोर्स सॉफ़्टवेयर में किया जा सकता है।
अपनी आवश्यकताओं के आधार पर, आपको इनमें से एक चुनना होगा और उसकी नीतियों का पालन करना होगा। प्रत्येक लाइसेंस प्रकार की नीतियों और समझौतों का विवरण LICENSE.COMMERCIAL और LICENSE.GPL फ़ाइलों में उपलब्ध है।
यदि आप परिवर्तन करने, अपने स्वयं के नियम विकसित करने, इत्यादि के लिए नवीनतम संस्करण इंस्टॉल करना चाहते हैं, तो बस इस रिपॉज़िटरी को क्लोन करें, नियमों को कंपाइल करें, और पैकेज को editable मोड में इंस्टॉल करें:
git clone https://github.com/rednaga/APKiD
cd APKiD
python prep-release.py
pip install -e .[dev,test]
ऊपर दिए गए python prep-release.py कमांड के लिए आवश्यक है कि yara-python और yara-python-dex पैकेज पहले से इंस्टॉल हों।
यदि आपकी स्थानीय मशीन और Python कहाँ इंस्टॉल है, उसके आधार पर permission त्रुटियों के कारण उपरोक्त काम नहीं करता है, तो --user फ़्लैग निर्दिष्ट करके देखें। यदि आप virtual environment का उपयोग नहीं कर रहे हैं तो यह संभवतः आवश्यक होगा:
pip install -e .[dev,test] --user
यदि आप किसी भी नियम को अपडेट करते हैं, तो उन्हें पुनः कंपाइल करने के लिए prep-release.py चलाना सुनिश्चित करें।
यदि आप Windows का उपयोग कर रहे हैं, तो Yara के किसी भी पिछले संस्करण को अनइंस्टॉल करें और कंपाइल करने से पहले Yara 3.11.0 और yara-python-dex इंस्टॉल करें
pip uninstall -y yara-python yara-python-dex
pip install yara-python==3.11.0 wheel
pip wheel --wheel-dir=yara-python-dex git+https://github.com/MobSF/yara-python-dex.git
pip install --no-index --find-links=yara-python-dex yara-python-dex
नया संस्करण जारी करते समय, सुनिश्चित करें कि संस्करण apkid/init.py में अपडेट किया गया है।
जहाँ तक परीक्षण चलाने की बात है, .travis.yml देखें कि dev और test वातावरण कैसे सेटअप किए जाते हैं और परीक्षण कैसे चलाए जाते हैं।
कंपाइल किए गए नियमों और readme को अपडेट करें, पैकेज बनाएं और PyPI पर अपलोड करें:
./prep-release.py readme
rm -f dist/*
python setup.py sdist bdist_wheel
twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
अधिक जानकारी के लिए देखें Packaging Projects।