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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dexfinder — أداة بحث عبر الأنظمة الأساسية عن الطرق (methods) في ملفات APK/DEX مع تتبع سلسلة الاستدعاءات، وإزالة تشويش ProGuard، واكتشاف الواجهات البرمجية المخفية. | Kitploit
أدوات/GitHubGitHub/junelegency/dexfinder
أمان أندرويدالتحليل الثابتتحليل الثغرات الأمنيةتحليل الكودالهندسة العكسيةجمع المعلوماتDevSecOpsأمن الجوالتحليل الملفات الثنائية
GitHubjunelegency/dexfinder

dexfinder

أداة بحث عبر الأنظمة الأساسية عن الطرق (methods) في ملفات APK/DEX مع تتبع سلسلة الاستدعاءات، وإزالة تشويش ProGuard، واكتشاف الواجهات البرمجية المخفية.

921021منذ 5 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

dexfinder

English | 中文 | الموقع الإلكتروني عرض توضيحي لـ dexfinder


الموقع الإلكتروني: junelegency.github.io/dexfinder

أداة عبر الأنظمة الأساسية للبحث عن مراجع الدوال والحقول في APK/DEX مع تتبع سلاسل الاستدعاء، وإزالة التعتيم ProGuard/R8، واكتشاف واجهات برمجة التطبيقات المخفية في Android.

مستوحاة من أداة veridex الخاصة بـ Android، وأُعيد تنفيذها بلغة Go مع قدرات محسّنة: كشف الانعكاس بشكل أسرع، تتبع سلسلة الاستدعاءات (veridex يُظهر مستوى واحدًا فقط)، وتنسيقات إخراج مرنة.

الميزات

  • مسح APK/DEX/JAR — تحليل كود DEX البايت، استخراج جميع مراجع الدوال/الحقول/السلاسل النصية
  • استعلام متعدد التنسيقات — البحث باسم Java، أو توقيع DEX/JNI، أو كلمة مفتاحية بسيطة
  • تتبع سلسلة الاستدعاءات — تتبع المستدعين حتى N من المستويات، شجرة مدمجة أو قائمة مسطحة، مع اكتشاف الدورات
  • إزالة تعتيم ProGuard/R8 — تحميل mapping.txt، عرض الأسماء الأصلية بجانب المُعتمة
  • كشف واجهات API المخفية — تحميل hiddenapi-flags.csv، كشف واجهات API المحظورة/غير المدعومة
  • كشف الانعكاس — مطابقة الفئات مع السلاسل النصية للعثور على استخدام واجهات API المخفية القائمة على الانعكاس
  • إخراج مرن — نص / json / model / html / sarif، تخطيط شجرة / قائمة، نمط اسم java / dex — كلها متعامدة
  • إخراج طرفية ملونة — ألوان ANSI مكتشفة تلقائيًا للعلامات، وموصلات الشجرة، ومستويات API
  • فرق APK — مقارنة إصدارين من APK/DEX، كشف مراجع API المضافة/المحذوفة/المتغيرة
  • تقارير HTML — HTML تفاعلي قائم بذاته مع أشجار قابلة للطي، بحث، وسمة داكنة
  • إخراج SARIF — SARIF 2.1.0 لفحص الكود في GitHub وVS Code وخطوط CI
  • تكامل CI — --fail-on blocked يخرج برمز غير صفري عند العثور على واجهات API المقيدة
  • ملف الإعدادات — .dexfinder.yaml للإعدادات الافتراضية للمشروع، مع إمكانية تجاوز عن طريق علامات CLI
  • صفر تبعيات خارجية — Go نقي، محلل DEX قائم بذاته
  • عبر الأنظمة الأساسية — macOS (Intel / Apple Silicon)، Linux (amd64 / arm64)، Windows

التثبيت

Homebrew (macOS / Linux):```bash brew install junelegency/tap/dexfinder

**البرنامج النصي** (يكتشف تلقائيًا نظام التشغيل/الهندسة):```bash
curl -sSL https://raw.githubusercontent.com/JuneLeGency/dexfinder/main/install.sh | bash

Go install:```bash go install github.com/JuneLeGency/dexfinder/cmd/dexfinder@latest

**ثنائي**: تنزيل من [Releases](https://github.com/JuneLeGency/dexfinder/releases).

## بداية سريعة```bash
# Show APK overview
dexfinder --dex-file app.apk --stats

# Find all calls to getDeviceId (IMEI)
dexfinder --dex-file app.apk --query "getDeviceId"

# Trace call chains as merged tree
dexfinder --dex-file app.apk --query "getDeviceId" --trace

# Trace as flat call stacks (Java crash style)
dexfinder --dex-file app.apk --query "getDeviceId" --trace --layout list

# Exact JNI signature query
dexfinder --dex-file app.apk \
  --query "Landroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;" \
  --trace --depth 8

# Hidden API detection
dexfinder --dex-file app.apk --api-flags hiddenapi-flags.csv

صيغ الاستعلام

العلامة --query تقبل عدة أنماط إدخال. يقوم dexfinder بالكشف التلقائي والتحويل بينها.

الصيغةمثالالسلوك
اسم بسيطgetDeviceIdمطابقة جزئية غير دقيقة عبر جميع واجهات API
كلاس Javaandroid.telephony.TelephonyManagerجميع دوال/حقول ذلك الكلاس
كلاس#دالة في Javaandroid.telephony.TelephonyManager#getDeviceIdجميع التحميلات الزائدة لتلك الدالة
التوقيع الكامل في Java...TelephonyManager#getDeviceId()مطابقة تامة مع الرجوع إلى التحميلات الزائدة
توقيع DEX/JNILandroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;مطابقة تامة فقط

All equivalent — find requestLocationUpdates in LocationManager:

dexfinder --dex-file app.apk --query "requestLocationUpdates" dexfinder --dex-file app.apk --query "android.location.LocationManager#requestLocationUpdates" dexfinder --dex-file app.apk --query "Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V"

## التحكم في المخرجات

ثلاثة محاور مستقلة، قابلة للتجميع بحرية:```
--format  (text / json / model / html / sarif)    what to output
--layout  (tree / list)                           how to arrange traces
--style   (java / dex)                            how to display names
--color   (auto / always / never)                 terminal colors

--format

القيمةالوصف
textإخراج نصي عادي مع وسوم ملونة (الافتراضي)
jsonJSON — نتائج المسح أو التتبع بتنسيق شجري/قائمة
modelJSON منظم مع أنواع MethodInfo/FieldInfo كاملة (لبيئات التطوير/التكامل المستمر)
htmlتقرير HTML مستقل مع أشجار قابلة للطي وبحث
sarifتنسيق تحليل ثابت SARIF 2.1.0 (GitHub / VS Code)

--layout (يُستخدم مع --trace)

القيمةالوصف
treeشجرة مدمجة — مسارات الاستدعاء المشتركة مطوية في شجرة واحدة (الافتراضي)
listقائمة مسطحة — كل سلسلة استدعاء فريدة تظهر كمكدس مستقل

--style

القيمةمثالحالة الاستخدام
javacom.example.Foo.method(Foo.java)قابل للقراءة البشرية (الافتراضي)
dexFoo.method(Ljava/lang/String;)Vتحليل دقيق للتوقيعات

--scope (نطاق البحث)

يتحكم في نوع المراجع التي يطابقها الاستعلام. هذا أمر بالغ الأهمية لفهم النتائج.

القيمةما يبحث عنهالسؤال الذي يجيب عليهالوسم الناتج
allواجهات برمجة التطبيقات المستدعاة + الحقول + سلاسل النص"من يستدعي هذه الواجهة البرمجية؟" (الافتراضي)[METHOD] [FIELD] [STRING]
calleeتوقيعات واجهة برمجة التطبيقات المستهدفة فقط في تعليمات invoke-* / get/put"من يستدعي هذه الطريقة/الحقل بالتحديد؟"[METHOD] [FIELD]
callerتوقيع الطريقة المستدعية فقط"ما الذي تستدعيه هذه الطريقة داخليًا؟"[CALLER→]
stringثوابت النص في تعليمات const-string"أين يُستخدم هذا النص في الكود؟"[STRING]
string-tableنصوص الكود + جدول النص الكامل لـ DEX"هل هذا النص موجود في أي مكان في DEX؟" (يشمل التعليقات التوضيحية، الكود الميت)[STRING] [STRING_TABLE]
everythingجميع ما سبق مجتمعًاالصورة الكاملةجميع الوسوم

فهم الفرق بين callee و caller:``` scope=callee: "Who calls finish()?" onCreate ──calls──→ finish() ← these callers are shown onResume ──calls──→ finish()

scope=caller: "What does finish() call internally?" finish() ──calls──→ Log.i() ← these callees are shown finish() ──calls──→ super.finish()

`--scope=all` (الافتراضي) = `callee` + `string`. يتم استبعاد اتجاه `caller` عمدًا من الافتراضي لأنه يجيب على سؤال مختلف جوهريًا. استخدم `--scope=caller` أو `--scope=everything` صراحةً عندما تحتاج ذلك.

**فهم وسوم المخرجات:**

| الوسم | المعنى |
|---|---|
| `[METHOD]` | طريقة **يتم استدعاؤها** تطابق استعلامك (مطابقة المستدعى). الأسطر المسننة هي المستدعون. |
| `[FIELD]` | حقل **يتم الوصول إليه** يطابق استعلامك. الأسطر المسننة هي الوصولات. |
| `[CALLER→]` | طريقة **مستدعية** تطابق استعلامك. يظهر السطر المسنن ما هي واجهة API التي تستدعيها. |
| `[STRING]` | ثابت نصي في الكود يطابق استعلامك. الأسطر المسننة هي مكان استخدامه. |
| `[STRING_TABLE]` | النص موجود في جدول النصوص DEX ولكن ليس له مرجع `const-string` في الكود (قد يكون في التعليقات التوضيحية، أو تم تحسينه بواسطة R8، إلخ). |

## أمثلة
تنزيل الأداة