
إضافة VSCode للهندسة العكسية للجوال القائمة على Frida: فحص الفئات/الوحدات النمطية في وقت التشغيل، توليد خطافات Java/ObjC والكود الأصلي، الإكمال التلقائي، وإدارة أجهزة Android/iOS.
هذا مشروع بمساهمة من المجتمع، وغير تابع لفريق Frida الرسمي. تم تطويره وصيانته بواسطة @CodeColorist كإضافة مفتوحة المصدر لبرنامج Visual Studio Code تهدف إلى تحسين تجربة كتابة سكربتات Frida.
inetcat لبدء صدفة SSH)إذا كنت تستخدم ويندوز، فأنت بحاجة إلى إبقاء iTunes مفتوحًا للتفاعل مع أجهزة iOS عبر USB.
بسبب PEP0668 قد تواجه خطأً عند تشغيل pip3 install frida-tools على مستوى النظام.
الطريقة الموصى بها هي فتح مجلد (مساحة عمل) في VSCode، ثم إنشاء بيئة افتراضية وتفعيلها باستخدام إضافة Python. في هذه الحالة، ستستخدم الإضافة بيئة Python الافتراضية النشطة حاليًا لديك لتحميل أوامر frida.
بدلاً من ذلك، يمكنك استخدام مدير حزم مثل pipx أو UV لتثبيته في $PATH مع إبقائه معزولًا.

اعرض التطبيقات والعمليات على الأجهزة المتصلة في لوحة جانبية. انقر بزر الفأرة الأيمن للإرفاق (attach)، أو الإرفاق بصلاحيات مرتفعة للأهداف المحلية، أو التشغيل (spawn)، أو التشغيل في وضع الإيقاف المؤقت، أو إنهاء العمليات، أو نسخ معلومات الجهاز/العملية إلى الحافظة. يدعم الأجهزة المحلية وأجهزة USB والأجهزة البعيدة. تتضمن إدخالات العمليات المحلية بيانات وصفية بأفضل جهد ممكن مثل مسار الملف التنفيذي، والمالك، والمعرّف الأصلي للعملية (PPID)، والوسائط عند توفّرها.
تصفح الوحدات الأصلية المحمّلة ودوالها المُصدَّرة لأي عملية مرفقة. صفِّ الوحدات حسب الاسم، وافحص عنوان الأساس والحجم والمسار، ثم اختر الدوال المُصدَّرة لتوليد الخطافات.
استكشف فئات وقت التشغيل وطرقه لكل من Java وObjective-C. صفِّ الفئات، ونقّل بين الطرق الخاصة بالفئة والطرق الموروثة، واختر طرقًا متعددة دفعة واحدة لتوليد الخطافات. يتضمن أيضًا فحص بروتوكولات Objective-C لتصفح البروتوكولات وتحليلها.
استخرج ترويسات الفئات للهندسة العكسية:
أنشئ كود خطافات Frida من لوحتي الوحدات والفئات:
Interceptor.attach() مع استدعاءات onEnter / onLeave للدوال المُصدَّرةJava.perform() / Java.use() مع دعم التحميل الزائد للطرق (method overload)إكمالات مدركة للسياق لسكربتات Frida في JavaScript / TypeScript:
ObjC.classes.<ClassName> — يكمل أسماء فئات Objective-CObjC.classes.Foo['<method>'] — يكمل مُحدِّدات الطرق (selectors)ObjC.classes.Foo.method — يكمل مُحدِّدات طرق الفئةJava.use('<ClassName>') — يكمل أسماء فئات JavaProcess.getModuleByName('<name>') — يكمل أسماء الوحدات المحمّلةيعتمد خادم اللغة على سياق عملية هدف. تحتاج إلى إنشاء ملف إعداد .vscode/frida.json في مساحة العمل. أسهل طريقة هي النقر بزر الفأرة الأيمن على عملية أو تطبيق في اللوحة الجانبية واختيار تعيين هدف LSP، حيث يتم إنشاء الملف تلقائيًا.
.vscode/frida.jsonيحدد هذا الملف الجهاز والهدف الذي يجب أن يرفق به LSP. يتطلب حقل device وحقلًا واحدًا فقط من بين app أو pid أو process.
الإرفاق بمعرّف التطبيق (موصى به — يشغّل التطبيق أو يرفق به):
{
"device": "local",
"app": "com.example.myapp"
}
الإرفاق باسم العملية:
{
"device": "local",
"process": "myprocess"
}
الإرفاق بمعرّف العملية (PID) (مفيد عندما تتشارك عدة عمليات في نفس الاسم):
{
"device": "local",
"pid": 1234
}
قيمة device تقابل معرّف جهاز Frida — local للجهاز المضيف، وusb لجهاز متصل عبر USB، أو سلسلة host:port للأجهزة البعيدة.
يراقب LSP هذا الملف بحثًا عن التغييرات. تعديله أو إعادة إنشائه يعيد تشغيل خادم اللغة تلقائيًا مع الهدف الجديد.
بث سجلات التطبيق لحظيًا من العمليات المرفقة.
أنشئ ملفي launch.json وtasks.json في VSCode لتصحيح أخطاء سكربتات Frida باستخدام نقاط التوقف.
بالنسبة لأجهزة أندرويد، Open Shell هو غلاف لأمر adb shell.
أما بالنسبة لنظام iOS، فيوفّر صدفة SSH على الأجهزة التي تم كسر حمايتها (jailbroken). قد تحتاج إلى إعداد بيانات الاعتماد.
اتصل بأجهزة Frida البعيدة عبر host:port مباشرةً من اللوحة الجانبية.