
مراقب واجهات API في وقت التشغيل قائم على Frida لتطبيقات Android، يسجل واجهات API المستدعاة، والمعاملات، والقيم المرتجعة، وأصول الاستدعاء عبر فئات محددة مسبقاً أو مخصصة.

PAPIMonitor (Python API Monitor لتطبيقات Android) هي أداة Python تعتمد على Frida لمراقبة واجهات برمجة التطبيقات التي يختارها المستخدم أثناء تنفيذ التطبيق. يجب تثبيت التطبيق داخل محاكٍ متصل بالفعل عبر ADB بجهاز الكمبيوتر المضيف. يمكن للمستخدم اختيار مراقبة قائمة محددة مسبقًا من واجهات برمجة التطبيقات مقسمة إلى عدة فئات (مثل بيانات الجهاز، معلومات الجهاز، SMS) أو قائمة مخصصة من واجهات برمجة التطبيقات يتم تمريرها عبر سطر الأوامر إلى السكريبت. تقوم الأداة بتخزين واجهة برمجة التطبيقات المستدعاة، والمعاملات، وقيمة الإرجاع، والسطر والملف الذي تم استدعاؤها منه.
أدناه مثال على المخرجات:
{
"category": "Custom",
"class": "com.dave.popupre.MainActivity",
"method": "getText",
"args": [],
"calledFrom": "com.dave.popupre.MainActivity$1.onClick(MainActivity.java:26)",
"returnValue": "Hello Toast!",
"time": "03/09/2021, 14:43:06"
}
⚠️ تحذير بخصوص محاكي Google
| محاكي Google | Ubuntu | Windows | MacOS |
|---|---|---|---|
| 7.x x86 | ✔️ | ✔️ | ✔️ |
| 8.x x86 | ✔️ | ✔️ | ✔️ |
| 9.0 x86 | ✔️ | ✔️ | ✔️ |
| 10.0 x86 | ✔️ | ✔️ | ✔️ |
| 11.0 x86 | ✔️ | ✔️ | ✔️ |
| 12.0 x86 | ✔️ | ✔️ | ✔️ |
⚠️ يبدو أن Frida معطلة على Android 11-12 (x86_64) (محاكي Google).
المتطلبات العامة:
sudo apt-get install libjpeg-dev zlib1g-dev
pyenv install 3.8.0
pyenv virtualenv 3.8.0 papi-monitor
pyenv activate 3.8.0/envs/papi-monitor
pip3 install -r requirements
sudo apt-get install python3-virtualenv
virtualenv env
source env/bin/activate
pip install -r requirements
resources/frida-server/python papi_monitor.py --package-name com.package.name --filter "Crypto"
python papi_monitor.py --file-apk app.apk --api-monitor api_personalized.json
python papi_monitor.py --package-name com.package.name --api-monitor api_personalized.json
python papi_monitor.py --package-name com.package.name --filter "ALL"
python papi_monitor.py --package-name com.package.name --api-monitor api_personalized.json --store-script True --filter "Crypto" "Crypto - Hash"
python papi_monitor.py --package-name com.package.name --api-monitor api_personalized.json --pinning-bypass --antiroot-bypass
يمكن العثور على الكثير من سكريبتات Frida لنظام Android هنا.