
تحديات عملية لتعلم كيفية الهندسة العكسية لتطبيقات Flutter.
يحتوي هذا المستودع على سلسلة من التحديات التصاعدية المصممة لتقديم الهندسة العكسية لتطبيقات Flutter. نظرًا لعدم وجود العديد من المنشورات أو الدروس التعليمية التي تشرح الهندسة العكسية لـ Flutter بالتفصيل، قررت إنشاء هذا المستودع كطريقة عملية لسد هذه الفجوة.
الهدف هو بناء أساس متين لفهم الخصائص الفريدة لإطار عمل Flutter وتقنيات التحليل الشائعة المستخدمة معه.
التحديات منظمة بشكل تدريجي، بدءًا من المفاهيم الأساسية والتقدم نحو التقنيات المتوسطة والأكثر تقدماً مثل اعتراض حركة مرور الشبكة وتجاوز الحماية.
بدلاً من التقرير التقليدي، يتضمن كل تحدٍ حلاً مفصلاً بأسلوب منشور مدونة يرشدك خطوة بخطوة خلال عملية الهندسة العكسية، ممزوجًا بحل المشكلات العملي بالنظرية ذات الصلة بحيث يتم تعلم المفاهيم مباشرة من خلال الممارسة.
إذا كنت تشعر أنك تفتقر إلى أي من المتطلبات الأساسية، فإن الموارد التالية موصى بها بشدة:
يتضمن كل دليل تحدي ما يلي:
chall<X>.apk: ملف APK المُجمّع للتحدي;solution/_images/: الصور المشار إليها في الحل;solution/solution.md: حل مفصل خطوة بخطوة;source/: ملفات المصدر للتطبيق وتعليمات البناء، لمن يرغب في تعديل التطبيق والتجربة أكثر;$ tree
.
├── chall<X>.apk
├── solution
│ ├── _images
│ │ ├── chall<X_Y>.png
│ └── solution.md
└── src
├── how_to_build.md
└── main.dart
تتطلب بعض هذه الأدوات تكوينات محددة. لتبسيط الإعداد وضمان قابلية التكرار، يتم توفير ملفات Docker لبعض هذه الأدوات ويمكن العثور عليها في دليل /tools.
الأدوات:
apktool - أداة لفك تجميع وإعادة بناء ملفات APK (link)Blutter - مفكك لتطبيقات Flutter (link, ملف Docker المضمن في هذا المستودع)Frida - مجموعة أدوات الإجهاز الديناميكي (link)jadx - مفكك Android (link)reFlutter - إطار عمل للهندسة العكسية لـ Flutter (link)Burp Suite - وكيل لاعتراض حركة المرور (link)هذا المشروع موزع بموجب رخصة MIT. راجع ملف LICENSE لمزيد من التفاصيل.
تم إنشاء هذا المستودع حصريًا للأغراض التعليمية. يجب استخدام التقنيات الموصوفة فقط على التطبيقات التي لديك الحق في تحليلها أو في بيئات اختبار خاضعة للرقابة. لا يتحمل المؤلف أي مسؤولية عن سوء استخدام المعلومات الواردة في هذا المستودع.