
مُعرّف تطبيقات أندرويد للحزم والحمايات والمُشوِّهات والغرائب - PEiD لأندرويد
يمنحك APKiD معلومات حول كيفية إنشاء ملف APK. فهو يحدد العديد من المترجمات (compilers) والحزم (packers) والمشوّهات (obfuscators) والأشياء الغريبة الأخرى. إنه 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، فيرجى فتح مشكلة (issue) على GitHub وإخبارنا بما يلي:
نحن منفتحون على أي نوع من الأفكار التي قد تكون لديك حول "شيء مثير للاهتمام" يمكن اكتشافه، لذا لا تقتصر فقط على الحزم أو المترجمات أو المشوّهات. إذا كانت هناك خدعة مثيرة للاهتمام مضادة للتفكيك (anti-disassembler) أو مضادة للآلة الافتراضية (anti-vm) أو مضادة لأي شيء (anti-*)، فيرجى إنشاء مشكلة.
طلبات السحب (Pull requests) مرحب بها. إذا كنت ترسل قاعدة جديدة، فتأكد من تضمين تجزئة ملف APK / DEX حتى نتمكن من التحقق من القاعدة.
هذه الأداة متاحة بموجب ترخيص مزدوج: ترخيص تجاري مناسب للمشاريع مغلقة المصدر وترخيص GPL يمكن استخدامه في البرمجيات مفتوحة المصدر.
اعتمادًا على احتياجاتك، يجب عليك اختيار أحدهما واتباع سياساته. تتوفر تفاصيل السياسات والاتفاقيات لكل نوع ترخيص في ملفي LICENSE.COMMERCIAL و LICENSE.GPL.
إذا كنت ترغب في تثبيت أحدث إصدار لإجراء تغييرات، وتطوير قواعدك الخاصة، وما إلى ذلك، فما عليك سوى استنساخ هذا المستودع، وتجميع القواعد، وتثبيت الحزمة في الوضع القابل للتحرير:
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، فحاول تحديد العلامة --user. من المحتمل أن تكون بحاجة إلى ذلك إذا كنت لا تستخدم بيئة افتراضية:
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 لمعرفة كيفية إعداد بيئتي التطوير والاختبار وكيفية تشغيل الاختبارات.
قم بتحديث القواعد المجمعة، وملف 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.