
تست نفوذ اپلیکیشن اندروید
مرجع تخصصی مهندسی معکوس و هوک کردن اپلیکیشنهای اندروید
تحلیل استاتیک و داینامیک اپلیکیشن
تالیف و توسعه: میثم بالافکن
📚 سرفصلهای اصلی آموزش
این مستندات به دو بخش اصلی تحلیل ایستای کد (Static Analysis) و هوکینگ پویا (Dynamic Instrumentation) با فریدا تقسیم شده است.
🔍 بخش اول: تحلیل استاتیک (Static Analysis)
در این بخش بدون اجرای برنامه، کدهای منبع و فایلهای پیکربندی را برای یافتن آسیبپذیریها بررسی میکنیم.
- تحلیل پیکربندیهای Manifest: بررسی مجوزها و کامپوننتهای صادر شده (Exported).
- کامپوننتهای اصلی اندروید: تحلیل آسیبپذیری در Activityها، Broadcast Receiverها، Serviceها و Content Providerها.
- تزریق کد و حمله سیستمی: بررسی آسیبپذیری Intent Injection.
- نشت اطلاعات حساس: یافتن رمزهای عبور، کلیدهای API و دادههای ذخیره شده به صورت ناامن.
- امنیت WebView: بررسی حفرههای امنیتی در مرورگرهای داخلی اپلیکیشن.
- رمزنگاری ضعیف: شناسایی الگوریتمهای منسوخ و پیادهسازیهای غلط.
- Deep Links: تحلیل URI Schemeها و بردارهای حمله مرتبط.
⚡ بخش دوم: فریدا از صفر تا صد (Frida Zero To Hiro)
در این بخش وارد دنیای دستکاری حافظه و تغییر رفتار اپلیکیشن در زمان اجرا میشویم.
🔹 تعامل با ماشین مجازی جاوا (Java Layer)
- Java.perform: نقطه آغازین؛ ورود به ترد اصلی برنامه.
- Java.use: بارگذاری کلاسها و تغییر رفتار متدها (Hooking).
- Java.choose: اسکن حافظه Heap و پیدا کردن نمونههای زنده (Live Objects).
- Java.cast: تبدیل نوع اشیاء (Type Casting) برای دسترسی به متدهای خاص.
- Java.array: ساخت و دستکاری آرایههای جاوا و آرایههای بایت.
- Java.registerClass: ساخت کلاس جدید و پیادهسازی Interfaceها در زمان اجرا.
🔹 مهندسی معکوس لایه Native و حافظه (Native Layer)
- Interceptor: هوک کردن توابع سطح پایین C/C++ و کتابخانههای
.so. - مقابله با ASLR: محاسبه آفستهای حافظه و کار با ماژولها در زمان اجرا.
- اعماق اندروید: تکنیکهای پیشرفته Native Hooking، اسکن الگو (Pattern Scanning) و کار با رجیسترها.
🔹 ابزارها و دیباگینگ
- frida-trace: ردیابی سریع توابع بدون نیاز به کدنویسی طولانی.
- عیبیابی جاوا (Java Debugging): مدیریت خطاها، چاپ Stacktrace و لاگهای پیشرفته.
- Troubleshooting: راهنمای رفع خطاهای رایج مثل
Process Crashedو مشکلات اتصال.
🔹 ارتباطات و سناریوهای پیشرفته
- ایجاد Connection: برقراری ارتباط RPC و تبادل داده بین اسکریپت و سیستم عامل.
- دستکاری رابط کاربری (UI Manipulation): تغییر گرافیک برنامه، خواندن فیلدهای متنی و دور زدن صفحات امنیتی.
- System Properties: تغییر ویژگیهای سیستمی برای فریب اپلیکیشن (Anti-Root Bypass).
- Obfuscation: تکنیکهای مقابله با مبهمسازی کد و پیدا کردن کلاسهای مخفی شده.