Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
redexer — إطار عمل Redexer للتجهيز الثنائي لرمز Dalvik البايت | Kitploit
أدوات/GitHubGitHub/plum-umd/redexer
أمان أندرويدالتحليل الثابتالتحليل الديناميكي (عزل)الهندسة العكسيةتحليل الملفات الثنائيةالأوراق والأبحاثالتعلم والتعليم
GitHubplum-umd/redexer

redexer

إطار عمل Redexer للتجهيز الثنائي لرمز Dalvik البايت

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Build Status

redexer

Redexer هي أداة إعادة هندسة تتعامل مع ثنائيات تطبيقات Android. هذه الأداة قادرة على تحليل ملف DEX إلى بنية بيانات في الذاكرة؛ واستنتاج المعاملات التي يستخدم بها التطبيق أذونات معينة (نسمي هذه الميزة RefineDroid)؛ وتعديل وإعادة تحويل تلك البنية لإنتاج ملف DEX ناتج (نسمي هذه الميزات Dr. Android، والتي تعني إعادة كتابة Dalvik لنظام Android).

المنشورات

  • Dr. Android and Mr. Hide: Fine-grained Permissions in Android Applications. Jinseong Jeon, Kristopher K. Micinski, Jeffrey A. Vaughan, Ari Fogel, Nikhilesh Reddy, Jeffrey S. Foster, and Todd Millstein. In ACM CCS Workshop on Security and Privacy in Smartphones and Mobile Devices (SPSM '12), Oct 2012.

المتطلبات

  • OCaml و Ruby

تم اختبار هذه الأداة باستخدام OCaml 4.09.0 و Ruby 1.8.6(7)، لذا تحتاج إلى تثبيتهما (أو إصدارات أعلى).

  • مدير حزم/مكتبات OCaml ومكتبة SHA

للتعامل مع توقيع SHA-1 (تجزئة) في تنسيق DEX، نستخدم مكتبة OCaml SHA عبر ocamlfind/findlib، وهو مدير مكتبات OCaml. أسهل طريقة لتثبيت كليهما هي استخدام OPAM، مدير حزم OCaml، الذي يحتوي على كلا الحزمتين—OPAM ocamlfind و OPAM sha.

يمكنك أيضًا بناء و/أو تثبيت كليهما مباشرة. إذا كنت تستخدم جهاز لينكس، يمكنك العثور بسهولة على التوزيعات.

إذا لم يكن الأمر كذلك، على سبيل المثال باستخدام Mac، فستحتاج إلى بنائه بنفسك. يمكنك العثور على أكواد المصدر الأصلية هنا. قم ببنائه عن طريق تشغيل make، واربط الدليل الناتج في دليل site-lib الجذر لـ ocamlfind؛ أو sudo make install.

إذا كنت تستخدم جهاز كمبيوتر، فستحتاج إلى تثبيت ocamlfind/findlib و FlexDLL أولاً. يرجى التأكد من تعيين متغيرات البيئة بشكل صحيح كما يلي:

OCAMLLIB=C:\OCaml\lib
CAML_LD_LIBRARY_PATH=%OCAMLLIB%\stublibs
FLEXLINKFLAGS=-L%MinGW%\lib -L%MinGW%\lib\gcc\mingw32\N.N.N
  • حزم OPAM :

    • sha
    • str
    • ppx_deriving
    • ppx_deriving_yojson
    • yojson
  • Android SDK (أو المصادر)

لفك وإعادة تعبئة ملفات apk، نستخدم apktool، وهي أداة إعادة هندسة مفتوحة المصدر لـ APK. نظرًا لأنها تستخدم aapt، أداة تعبئة أصول Android، فأنت بحاجة إلى تثبيت Android SDK أو المصادر. بالإضافة إلى ذلك، نستخدم zipalign، والتي تأتي أيضًا من Android SDK، لتحسين التطبيقات المعاد كتابتها.

يمكنك تعيين المسارات إلى أدوات Android الأساسية عن طريق إضافة ما يلي إلى ملف التعريف الخاص بك:

ANDROID_HOME=$HOME/android-sdk    # المسار الخاص بك هنا!
export ANDROID_HOME

PATH=$PATH:$ANDROID_HOME/tools
PATH=$PATH:$ANDROID_HOME/platform-tools
PATH=$PATH:$ANDROID_HOME/build-tools/19.0.0    # رقم الإصدار المثبت
export PATH
  • RubyGems و Nokogiri

النصوص الرئيسية مكتوبة بلغة Ruby وتتطلب RubyGems، مدير حزم Ruby، و Nokogiri، مكتبة XML لمعالجة ملفات البيان.

  • (اختياري) graphviz dot

إذا كنت ترغب في رؤية الرسوم البيانية (مثل رسم بياني للاستدعاءات، رسم بياني لتدفق التحكم، شجرة الهيمنة، إلخ)، فستحتاج إلى تثبيت graphviz dot.

البناء

لبناء redexer، فقط استخدم make! يمكنك رؤية ملف redexer الثنائي في المستوى الأعلى.

$ make (clean)

قبل استخدام الأداة، يقع على عاتق المستخدم تثبيت أحدث ملف منصة لـ apktool. على سبيل المثال، تحتاج إلى القيام بما يلي

$ java -jar tools/apktool.jar if [ملف المنصة المناسب]

يمكنك أيضًا إنشاء مستندات API بتنسيق html.

$ make api

الاستخدام

  • المساعدة

يمكنك رؤية جميع الخيارات التي توفرها الأداة:

$ ruby scripts/cmd.rb -h
$ ruby scripts/cmd.rb --help
  • إعادة التحويل (unparse)

على غرار dexdump في Android SDK، يتيح لك redexer عرض البنية الداخلية لملف dex المحدد بتنسيق YAML.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd unparse [--to blah.yml]
  • تفريغ الطريقة (dump method)

يقوم هذا الخيار بتفريغ التعليمات لطريقة محددة.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd dump_method --mtd cls.mtd
  • الهوية (identity)

هذه الميزة لاختبار وحدات التحليل والتفريغ في redexer. من المحتمل أن تنشئ ملف dex مطابقًا.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd id [--to blah.dex]
  • المعلومات (info)

يمكنك أيضًا رؤية إحصائيات أساسية حول ملف dex، مثل عدد التعليمات.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd info
  • الفئات (classes)

يقوم هذا الخيار بطباعة جميع أسماء الفئات المعرفة في ملف dex.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd classes

قد يكون مفيدًا للبحث عن مكتبات طرف ثالث محددة، على سبيل المثال:

$ ruby scripts/cmd.rb target.(apk|dex) --cmd classes | egrep 'apache'
  • واجهة برمجة التطبيقات (api)

يقوم هذا الخيار بطباعة استخدام واجهة برمجة التطبيقات في ملف dex.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd api [--sdk android.]
$ ruby scripts/cmd.rb target.(apk|dex) --cmd api --sdk com.facebook.
  • إحصائيات رموز العمليات (opcode statistics)

ألست فضوليًا لمعرفة مدى ندرة استخدام بعض رموز العمليات في bytecodes Dalvik؟ سيعرض لك الرسم البياني التكراري لجميع رموز العمليات، أو يمكنك البحث عن مدى تكرار استخدام رمز عملية معين في التطبيق المحدد.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd opstat [--op opcode1,opcode2,...]

على سبيل المثال:

$ ruby scripts/cmd.rb ~/apps/top24/com.whatsapp.apk --cmd opstat
$ ruby scripts/cmd.rb ~/apps/top24/com.whatsapp.apk --cmd opstat --op div-int/lit16,nop
  • تحليل حل النية (Intent resolution analysis)

يقوم هذا الخيار بإجراء تحليل حل النية القائم على الانتشار، وطباعة التحولات بين فئات النشاط.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd intent
  • رسم بياني للاستدعاءات (call graph)

يقوم هذا الخيار بإنشاء ملف pdf يصور رسمًا بيانيًا للاستدعاءات للملف المحدد. إذا لم تحدد اسم pdf، فسيتم استخدام cg.pdf.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd cg [--to blah.pdf] [--no-pdf]
  • رسم بياني لتدفق التحكم (control-flow graph)

يقوم هذا الخيار بإنشاء ملف pdf يظهر رسمًا بيانيًا لتدفق التحكم للطريقة المحددة. ألحق اسم الطريقة باسم الفئة بنقطة: class_name.method_name

$ ruby scripts/cmd.rb target.(apk|dex) --cmd cfg --mtd cls.mtd [--to blah.pdf] [--no-pdf]
  • شجرة الهيمنة (المنشورة) (post dominator tree)

هذا الخيار مشابه للميزة أعلاه، باستثناء أنه يصور شجرة الهيمنة (المنشورة).

$ ruby scripts/cmd.rb target.(apk|dex) --cmd (p)dom --mtd cls.mtd [--to blah.pdf] [--no-pdf]
  • تحليل البقاء (liveness analysis)

يقوم هذا الخيار بإجراء تحليل تدفق بيانات خلفي كلاسيكي.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd live --mtd cls.mtd
  • تحليل انتشار الثوابت (constant-propagation analysis)

يقوم هذا الخيار بإجراء تحليل تدفق بيانات أمامي كلاسيكي.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd const --mtd cls.mtd
  • تحليل تعريف الوصول (reaching definition analysis)

يقوم هذا الخيار بإجراء تحليل تدفق بيانات أمامي كلاسيكي.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd reach --mtd cls.mtd
  • التابعون (dependants)

يقوم هذا الخيار بإيجاد تبعيات الفئة.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd dependants --mtd cls.mtd
  • نشاط الإطلاق (launcher activity)

يقوم هذا الخيار بطباعة اسم نشاط الإطلاق لملف apk المحدد.

$ ruby scripts/cmd.rb target.apk --cmd launcher
  • المُصدرة (exported)

يتيح لك هذا الخيار معرفة المكونات المكشوفة للخارج.

$ ruby scripts/cmd.rb target.apk --cmd exported
  • النشاط، الخدمة، المزود، المستقبل (activity, service, provider, receiver)

تقوم هذه الخيارات بطباعة المكونات الأساسية لنظام Android المعلنة في البيان.

$ ruby scripts/cmd.rb target.apk --cmd [activity | service | provider | receiver]
  • العروض المخصصة (custom_views)
تنزيل الأداة