Milad Molazadeh
Milad Molazadeh
خواندن ۲ دقیقه·۵ سال پیش

Frida

مقدمه

در این پست، می‌خواهیم درباره 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 اجرا کنید.(به مکان اجرا توجه کنید)

دستورات زیر را وارد نمایید :

Frida install
Frida install
Frida Create Server
Frida Create Server
Check running server
Check running server
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 ام کد جاواسکریپت بالا اجرا میشود. حال میتوان چیز های دیگری نیز در این خط قرار داد و به هدف رسید.


منابع:

https://www.frida.re


ممنون از اینکه این مقاله را مطالعه کردید .

میلاد مولازاده دانشجوی دانشگاه ارومیه
fridaمهندسی‌معکوس
شاید از این پست‌ها خوشتان بیاید