نصب فرایدا (FRIDA) و FRIDA SERVER در ویندوز و اندروید

فرایدا (Frida) یکی از ابزارهای فوق‌العاده‌ای است که در زمینه مهندسی معکوس، توسعه، تست امنیت نرم‌افزارها و اپلیکیشن‌ها و غیره کاربرد دارد. در این مطلب نحوه نصب فرایدا در ویندوز و فرایدا سرور در اندروید (روت‌شده) توضیح داده می‌شود.

نصب «فرایدا» در ویندوز

فرایند نصب فرایدا در ویندوز خیلی ساده است؛ منتها قبل از نصب، دو پیش‌نیاز دارد:

اول؛ نصب پایتون در ویندوز که با توجه به مشخصات سیستم عامل خود (مثلا ویندوز 10- 32bit) می‌توانید فایل اجرایی نسخه مناسب را از اینجا دانلود کنید. فقط موقع نصب یادتان باشد که گزینه Add Python to Path را تیک بزنید و از قسمت «نصب سفارشی» (Customize Installation) هم مطمئن شوید که گزینه pip تیک خورده باشد.

دوم؛ نصب Android Debug Bridge یا همان ADB که یک ابزارِ خط‌فرمان (Command-line) برای کنترل دستگاه‌های اندرویدی از طریق کامپیوتر و لپ‌تاپ است.

برای نصب ADB ابتدا باید ابزار SDK Platform را برای ویندوز از اینجا دانلود کنید. بعد از دریافت، فایل فشرده را در یک مسیر ساده و دم‌دست (مثل درایو C) قرار دهید و از حالت فشرده خارج کنید تا محتوای آن در فولدر platform-tools ظاهر شود.

قدم بعدی اضافه کردن این مسیر (C:/platform-tools) به path است. برای اینکار عبارت advanced system settings را در ویندوز جستجو و پیدا کنید و از تب Advanced وارد Environment Variables شوید؛ در پنجره‌ای که باز می‌شود Path را انتخاب و گزینه Edit را بزنید تا بتوانید با گزینه New مسیر فولدر بالا را به Path اضافه کنید.

تا اینجا کار نصب پایتون و ADB تمام شده و برای اطمینان می‌توانید در Command Prompt دو دستور pip و adb را بزنید. اگر برخلاف قبل با پیام زیر رو به رو نشدید، به این معنی است که مراحل نصب را به درستی و با موفقیت طی کرده‌اید.

سوم؛ حالا با این مقدمات نوبت به نصب FRIDA می‌رسد. برای این کار کافیست که در پنجره CMD دستور زیر را اجرا کنید تا عملیات نصب آغاز شود:

pip install frida-tools

در انتها برای اطمینان از نصب درست می‌توانید دستور زیر را اجرا کنید. اگر ورژن فرایدا نمایش داده شود، مشکلی در نصب نبوده:

frida --version

تا اینجا کار نصب فرایدا در ویندوز تمام است و حالا نوبت به نصب Frida Server در اندروید می‌رسد که یک مقدار نسبت به ویندوز پیچیدگی دارد.

نصب «فرایدا سرور» در اندروید

فایل‌های فرایدا سرور از اینجا قابل دانلود است:

منتها تشخیص اینکه کدام فرمت را باید انتخاب و دریافت کنید (Arm یا x86)، کاملا بستگی به معماری سی‌پی‌یوی گوشی شما دارد. برای اطلاع از معماری پردازنده گوشی دو راه دارید: یکی نصب اپلیکیشن Droid Hardware Info یا اپلیکیشن‌های مشابه است.

مثال: معماری پردازنده از نوع ARM است
مثال: معماری پردازنده از نوع ARM است

و دیگری استفاده از دستور زیر (گوشی اندروید باید به لپ‌تاپ متصل باشد):

adb shell
getprop | grep abi
معماری پردازنده از نوع ARM است
معماری پردازنده از نوع ARM است


بعد از شناسایی معماری پردازنده گوشی و دریافت فایل مربوطه، برای سادگی در درایو C یک فولدر به نام frida-android و یک زیرشاخه به نام tools ایجاد کنید؛ سپس فایل فشرده را در آن قرار دهید، از حالت فشرده خارج کنید و در آخر برای سادگی مراحل بعدی، نام فایل غیرفشرده را به frida-server تغییر دهید. به این صورت:

حالا به سراغ پنجره CMD بروید و با دستورهای زیر به مسیر فولدر بالا وارد شوید:

cd C:\
cd frida-android
cd tools

گوشی موبایل را -که حتما باید روت شده باشد- با کابل USB به سیستم متصل کنید و روی حالت Transfer File قرار دهید. به علاوه مطمئن شوید که در موبایل حالت Developer Options روشن است، گزینه Android Debugging یا همان ADB فعال است و Root Access در حالت ADB only قرار دارد. در این مرحله برای اطمینان دو دستور زیر را در ادامه اجرا کنید:

adb devices
adb root

حالا قصد داریم فایل frida-server را به مسیر data/local/tmp در حافظه گوشی وارد کنیم؛ پس:

adb push frida-server /data/local/tmp

و در ادامه به ترتیب:

adb shell
cd /data/local/tmp
pwd
chmod +x frida-server
./frida-server &

کار تمام است. اگر در خط آخر دستور ps را وارد کنید، باید فهرستی از تمام پروسه‌های درحال اجرا نمایش داده شود.

ps

الان اگر یک پنجره جدید CMD باز کنید و دستور frida-ps -U را بزنید، فهرستی از تمام اپلیکیشن‌های در حال اجرا در گوشی موبایل به شما نشان داده می‌شود و این یعنی ارتباط برقرار شده است.

frida-ps -U 

قطع فرایدا سرور

و اما اگر بخواهید Frida Server را قطع یا Kill کنید چطور؟ در این حالت ابتدا با دستور frida-ps -U فهرستی از تمام اپلیکیشن‌های فعال بگیرید. بعد در این فهرست نام Frida Server و عدد سمت چپ آن (PID) را پیدا کنید.

حالا با داشتن این عدد {PID} و از طریق دستورهای زیر می‌توان فرایدا سرور را متوقف کرد:

adb root
adb shell
kill {PID}

وندا نوژن