
أداة مقارنة ضبابية لإزالة التشويش عن تطبيقات أندرويد (APK) عبر تحديد الدوال المعاد تسميتها بين الإصدارات، وإنشاء ملفات تعيين وتقارير HTML تفاعلية لتحليل البرامج الضارة والثغرات.
🤖 Obfu[DE]scate: أداة إزالة التعتيم والمقارنة لملفات APK لنظام Android. 📱
Obfu[DE]scate هي أداة بلغة Python مصممة لتبسيط عملية إزالة التعتيم ومقارنة نسختين من ملف APK لنظام Android - حتى إذا تمت إعادة تسمية الوظائف كجزء من التعتيم. بفضل منطق المقارنة الضبابي، يمكن لـ Obfu[DE]scate تحديد أوجه التشابه بين الوظائف ومساعدتك في كشف التغييرات بين إصدارات APK.
البدء مع Obfu[DE]scate سهل! اتبع هذه الخطوات:
pip install -r REQUIREMENTS.txt
تم اختبار Obfu[DE]scate على Windows 11، لكن يجب أن يعمل على أنظمة أخرى أيضًا.
يوفر Obfu[DE]scate عدة خيارات لسطر الأوامر لتخصيص سلوكه:
لمقارنة ملفي APK، قم بتشغيل Obfu[DE]scate باستخدام الأمر التالي:
python ObfuDeScate.py -a1 "old_example.apk" -a2 "new_example.apk" -cp "com.example.path"
في المثال أعلاه، سيقوم Obfu[DE]scate بمراجعة جميع الوظائف في ملف APK old_example.apk عند مسار الفئة com.example.path ومقارنتها مع جميع الوظائف الموجودة في نفس مسار الفئة في new_example.apk.
ينشئ Obfu[DE]scate ملفي إخراج: ملف تعيين بتنسيق قائمة مفصولة بسطر جديد، وملف HTML تفاعلي. تتضمن ملفات الإخراج هذه:
com.chess.play.ObserveGameHelperImpl.d -> com.chess.play.ObserveGameHelperImpl.a.
Obfu[DE]scate هو مشروع مفتوح المصدر يرحب بمساهمات المجتمع. إذا كنت ترغب في المساهمة في Obfu[DE]scate، يرجى اتباع هذه الإرشادات:
تتبع Obfu[DE]scate مدونة قواعد السلوك الخاصة بـ Contributor Covenant. يرجى الاطلاع عليها. والالتزام بها عند المساهمة في Obfu[DE]scate.
إذا واجهت خطأً أو كان لديك اقتراح لميزة جديدة، يرجى فتح مشكلة (issue) في مستودع GitHub. يرجى تقديم أكبر قدر ممكن من التفاصيل، بما في ذلك خطوات إعادة إنتاج المشكلة أو وصف واضح للميزة المقترحة. ملاحظاتك ذات قيمة وستساعد في تحسين Obfu[DE]scate للجميع.
هذه الأداة لن تعمل بدون APKTool! ثانيًا، تستخدم العديد من الأمثلة في هذا README تطبيق Chess.com كأساس، يمكنك الاطلاع عليه هنا.
| Shorthand | Parameter | Description | Required |
|---|
| -a1 | apk_file_path_1 | مسار ملف APK الأصلي. هذا هو APK الذي سيتم مقارنة APK الثاني به (أي إصدار أقدم من APK) | True |
| -a2 | apk_file_path_2 | مسار ملف APK الأحدث. سيظهر الإخراج التغييرات بين APK 1 وهذا APK. | True |
| -cp | class_path | مسار بتدوين المجال العكسي يُستخدم لتصفية الوظائف المدروسة (مثل توفير com.example.class لمقارنة الوظائف في هذا المسار فقط). | False |
| -o | output_dir | دليل لحفظ ملفات الإخراج (التعيين، HTML، و APKs المفككة). | False |
| -apktool | apk_tool_path | إذا لم يكن APKTool في مسارك، استخدم هذا الخيار لإخبار ObfuDeScate بمكان وجود APKTool. | False |