Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dex-oracle — مزيل تعتيم دالفيك قائم على الأنماط يستخدم تنفيذًا محدودًا لتحسين التحليل الدلالي. | Kitploit
أدوات/GitHubGitHub/calebfenton/dex-oracle
أمان أندرويدالهندسة العكسيةتحليل البرمجيات الخبيثةتحليل الملفات الثنائية
GitHubcalebfenton/dex-oracle

dex-oracle

مزيل تعتيم دالفيك قائم على الأنماط يستخدم تنفيذًا محدودًا لتحسين التحليل الدلالي.

عرض المستودع
504110منذ 7 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

أوراكل

مزيل تشويش (Deobfuscator) لـ Dalvik يعتمد على الأنماط ويستخدم تنفيذًا محدودًا لتحسين التحليل الدلالي. كما أنه مصدر إلهام لمزيل تشويش Android آخر: Simplify.

Gem Version Code Climate Test Coverage

قبل before

بعد after

sha1: a68d5d2da7550d35f7dbefc21b7deebe3f4005f3

md5: 2dd2eeeda08ac8c15be8a9f2d01adbe8

التثبيت

الخطوة 1. تثبيت Smali / Baksmali

بما أنك مهندس عكسي محترف لنظام Android، فأنا متأكد من أنك تمتلك بالفعل Smali و Baksmali في مسارك. إذا لم يتم تثبيتهما لسبب غريب، فيجب أن يساعدك هذا في البدء، لكن يرجى فحصه بعناية قبل التشغيل:

root@kitploit:~
mkdir ~/bin || cd ~/bin
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/smali-2.2.5.jar && mv smali-*.jar smali.jar
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/baksmali-2.2.5.jar && mv baksmali-*.jar baksmali.jar
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/smali
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/baksmali
chmod +x ./smali ./baksmali
export PATH=$PATH:$PWD

الخطوة 2. تثبيت Android SDK / ADB

تأكد من أن adb موجود في مسارك.

الخطوة 3. تثبيت الجيم (Gem)

root@kitploit:~
gem install dex-oracle

أو إذا كنت تفضل البناء من المصدر:

root@kitploit:~
git clone https://github.com/CalebFenton/dex-oracle.git
cd dex-oracle
gem install bundler
bundle install

الخطوة 4. توصيل جهاز أو محاكي

يجب أن يكون لديك إما محاكي قيد التشغيل أو جهاز متصل لكي يعمل Oracle. الحد الأدنى المطلوب لإصدار Android هو 5.0!

يحتاج Oracle إلى تنفيذ الطرق (methods) على نظام Android حي. يمكن أن يكون ذلك على جهاز أو محاكي (مفضل). إذا كان جهازًا، تأكد من أنك لا تمانع في تشغيل كود قد يكون ضارًا عليه.

إذا كنت ترغب في استخدام محاكي، ولديك بالفعل Android SDK مثبتًا، يمكنك إنشاء وبدء صور المحاكي باستخدام:

root@kitploit:~
android avd

الاستخدام

root@kitploit:~
Usage: dex-oracle [opts] <APK / DEX / Smali Directory>
    -h, --help                       عرض هذه الشاشة
    -s ANDROID_SERIAL,               معرف الجهاز لتنفيذ السائق، الافتراضي=""
        --specific-device
    -t, --timeout N                  مهلة تنفيذ أمر ADB بالثواني، الافتراضي="120"
    -i, --include PATTERN            تحسين الطرق (methods) والفئات (classes) المطابقة للنمط فقط، مثلاً Ldune;->melange\(\)V
    -e, --exclude PATTERN            استبعاد هذه الأنواع من التحسين؛ بما في ذلك التجاوزات (overrides)
        --disable-plugins STRING[,STRING]*
                                     تعطيل الإضافات، مثلاً stringdecryptor,unreflector
        --list-plugins               عرض الإضافات المتاحة
    -v, --verbose                    كن مفصلاً
    -V, --vverbose                   كن مفصلاً جداً

على سبيل المثال، لإزالة التشويش عن الطرق فقط في فئة تسمى Lcom/android/system/admin/CCOIoll; داخل ملف APK يسمى obad.apk:

root@kitploit:~
dex-oracle -i com/android/system/admin/CCOIoll obad.apk

كيف يعمل

يقبل Oracle تطبيقات Android (APK) وملفات Dalvik القابلة للتنفيذ (DEX) وملفات Smali كمدخلات. أولاً، إذا كان الإدخال هو APK أو DEX، يتم تفكيكه إلى ملفات Smali. ثم يتم تمرير ملفات Smali إلى إضافات مختلفة تقوم بالتحليل والتعديلات. تبحث الإضافات عن أنماط يمكن تحويلها إلى شيء أسهل للقراءة. من أجل فهم ما يفعله الكود، يتم تنفيذ بعض طرق Dalvik فعليًا ويتم جمع المخرجات. بهذه الطريقة، يمكن استبدال بعض استدعاءات الطرق بثوابت. بعد ذلك، يتم تحديث جميع ملفات Smali. أخيرًا، إذا كان الإدخال هو ملف APK أو DEX، يتم إعادة تجميع ملفات Smali المعدلة ويتم إنشاء APK أو DEX محدث.

يتم تنفيذ الطريقة بواسطة Driver. يتم دمج إدخال APK أو DEX أو Smali مع Driver في DEX واحد باستخدام dexmerge ويتم دفعه إلى جهاز أو محاكي. يمكن للإضافات بعد ذلك استخدام Driver الذي يستخدم انعكاس Java (reflection) لتنفيذ طرق من DEX المدخل. يمكن استخدام القيم المعادة لتحسين التحليل الدلالي إلى ما هو أبعد من مجرد التعرف على الأنماط. هذا مفيد بشكل خاص للعديد من طرق فك تشفير السلاسل النصية، والتي تأخذ عادةً سلسلة مشفرة أو مصفوفة بايت. أحد القيود هو أن التنفيذ يقتصر على الطرق الثابتة (static methods).

التطوير

إنشاء إضافة خاصة بك

هناك ثلاث إضافات تأتي مع Oracle:

  1. Undexguard - يزيل أنواعًا معينة من تشويش Dexguard
  2. Unreflector - يزيل بعض انعكاس Java
  3. String Decryptor - إضافة بسيطة تزيل نوعًا شائعًا من تشفير السلاسل النصية

إذا واجهت نوعًا جديدًا من التشويش، فقد يكون من الممكن إزالة التشويش باستخدام Oracle. افحص Smali واكتشف ما إذا كان يمكن للكود إما:

  1. إعادة ترتيبه
  2. فهمه عن طريق تنفيذ بعض الطرق الثابتة

إذا كان أي من هذين الأمرين صحيحًا، فيجب عليك محاولة كتابة إضافتك الخاصة. هناك أربع خطوات لبناء إضافتك الخاصة:

  1. تحديد أنماط Smali
  2. معرفة كيفية تبسيط الأنماط
  3. معرفة كيفية التفاعل مع السائق (driver) واستدعاء الطرق
  4. معرفة كيفية تطبيق التعديلات مباشرة

يجب أن تكون الإضافات المضمنة دليلاً جيدًا لفهم الخطوتين #3 و #4. تم تصميم Driver للمساعدة في الخطوة #2.

بالطبع، نرحب دائمًا بمشاركة أي تشويش تصادفه وقد يتعامل معه شخص ما في النهاية.

تحديث Driver

أولاً، تأكد من أن dx موجود في مسارك. هذا جزء من Android SDK، لكنه ربما ليس في مسارك إلا إذا كنت محترفًا.

مجلد driver هو مشروع Java يُدار بواسطة Gradle. قم باستيراده إلى Eclipse أو IntelliJ وما إلى ذلك وقم بإجراء أي تغييرات تريدها. لإنهاء تحديث driver، قم بتشغيل ./update_driver. سيعيد هذا بناء driver وتحويل ملف JAR الناتج إلى DEX.

استكشاف الأخطاء وإصلاحها

إذا كانت هناك مشكلة في تنفيذ كود driver على المحاكي أو الجهاز، فتأكد من فتح monitor (جزء من Android SDK) وتحقق من وجود أي أدلة هناك. حتى إذا كان الخطأ غير مفهوم لك، فسيساعد إذا قمت بنشره مع المشكلة التي ستنشئها.

ليست جميع منصات Android تعمل بشكل جيد مع dex-oracle. بعضها يتعطل عند محاولة تنفيذ ملفات DEX عشوائية. إذا كنت تواجه مشكلة مع Segfaults أو أعطال driver، جرب استخدام Android 4.4.2 API level 19 مع ARM.

من الممكن أن ترى إضافة نمطًا تعتقد أنه تشويش ولكنه في الواقع كود لا يجب تنفيذه. يبدو هذا غير محتمل لأن أنماط التشويش غير عادية حقًا، لكنه ممكن. إذا وجدت أن إضافة معينة تسبب مشاكل وأنت متأكد من أن التطبيق ليس محميًا بواسطة تلك المُشوشة (obfuscator) المعينة، أي أن التطبيق ليس محميًا بـ DexGuard ولكن إضافة DexGuard تحاول تنفيذ أشياء، فما عليك سوى تعطيلها.

المزيد من المعلومات

  1. TetCon 2016 - إزالة تشويش Android
  2. الاختراق باستخدام dex-oracle لإزالة تشويش برمجيات Android الخبيثة
تنزيل الأداة