مقدمه
در این پست، میخواهیم درباره Frida توضیحاتی ارائه داده و تمرینی را انجام بدهیم . ما اینجا سعی میکنیم از اپلیکیشن DIVA به عنوان تارگت کمک بگیریم. میتوانید از اینجا دانلود نمایید .
فریدا برای چیست؟
Reverse Engineering
Programmable Debugging
Dynamic Instrumention
منظور از مورد سوم، فرآیند درج کد داخل کلاس های Java میباشد و چون داینامیک میباشد، آنالیز های زمان اجرا یا runtime مدنظر است. (بعبارتی هوک(Hook) کردن توابع) . هوک به صورت پویا یعنی شما توابعی که در حال اجرا هستند را تغییر دهید.
مراحل نصب
هشدار:
حتما اخرین نسخه python را نصب کنید. من 3.7.3 نصب کردهام.
اگر از Genymotion استفاده میکنید، API 23 به بالا باشد، همچنین Virtual machine نیز آپدیت شود.
احتمالا اندروید استودیو و SDK در رایانه شما نصب هست. درغیر اینصورت SDK را تهیه و نصب نمایید.
میتوانید گوشی خود را با استفاده از USB به رایانهتان وصل نمایید ولی باید روت باشد. میتوانید از Genymotion استتفاده کنید.
معماری گوشی پردازنده را پیدا کرده و به این صفحه در گیتهاب مراجعه و با توجه به معماری، نسخه server را دانلود کنید.
اخرین نسخه پایتون را نصب نمایید و cmd را درحالت admin اجرا کنید.(به مکان اجرا توجه کنید)
دستورات زیر را وارد نمایید :
pip install --user frida //نصب
pip install --user frida-tools //نصب ابزار ها
adb devices //لیست دستگاه های متصل را نشان خواهد داد
adb push C:\Users\Milad\Downloads/frida-server-12.6.8-android-x86 data/local/tmp //توجهکنید قسمت اول آدرس فایلی است که بالا از گیتهاب دانلود کردیم
adb shell => cd data/local/tmp =>ls //همون فایل بالا که پوش شده نمایش داده میشود.
chmod 755 frida-server-x.x.x.x-x-x //دسترسی
./frida-server-x.x.x-android-x86 //راه اندازی سرور
frida-ps -U //در ترمینال دیگر وارد کنید
الان محیط آماده است . اپلیکیشن تارگت را بعد از آخرین اجرا پیدا کنید. (در عکس زیر مشاهده کنید)
خب :) جذاب ترین بخش هارو داریم اجرا میکنیم .... حالا نوبت کد زیر است تا تمام کلاس های اپلیکیشن را استخراج کنیم . یک فایل جاواسکریپت با نام milad.js به صورت زیر ایجاد کنید.
همچنین در cmd دستور زیر را بزنید ، سپس به کد milad.js برگشته و یک تغییر ایجاد کنید مثل Debug-> Debug1 چیزی که مشاهده خواهید کرد لیست کلاس هاست :
الان یک فایل jar از اپلیکیشن نیاز داریم بسازیم.
باید dex2jar-2.0 را دانلود نمایید.
و همچنین :) JD GUI را دانلود کنید .
درضمن JDK را هم که حتما نصب کرده اید؟
در این مرحله dex2jar و همچنین اپلیکیشن تارگت را اکسترکت کنید. classes.dex را به داخل پوشه dex2jar انتقال دهید و سپس cmd را اجرا نمایید :
فایل .jar را با استفاده از JD-GUI.exe باز کنید. چیزی که مشاهده خواهید کرد سورس کد اپلیکیشن است :)
مشاهده میکنید که نمیتوانیم داخل اپلیکیشن لاگین کنیم(چرا؟) ...
فایل milad.js را باز کنید و تغییرات زیر را اعمال نمایید :
و مثل قبل اجرا می کنیم.
مشاهده میکنیم هنگام لاگین بجای اینکه کد اصلی اجرا شود سطر 5 ام کد جاواسکریپت بالا اجرا میشود. حال میتوان چیز های دیگری نیز در این خط قرار داد و به هدف رسید.
منابع:
ممنون از اینکه این مقاله را مطالعه کردید .
میلاد مولازاده دانشجوی دانشگاه ارومیه