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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
hermit — يفحص ويفكك ويعالج هيكليًا بايت كود Hermes (HBC) من تطبيقات React Native، مع REPL بنمط GDB، وCFG، ومفكك، ومعالج إعادة تسلسل. | Kitploit
أدوات/GitHubGitHub/xv4l3x/hermit
أمان أندرويدالتحليل الثابتأمان iOSتحليل الكودتحليل الشفرة الديناميكي (DAST)الهندسة العكسيةمصممي الأخطاءأمن الجوالالأدوات والمكوناتتحليل الملفات الثنائية
GitHubxv4l3x/hermit
426منذ 2 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

hermit

يفحص ويفكك ويعالج هيكليًا بايت كود Hermes (HBC) من تطبيقات React Native، مع REPL بنمط GDB، وCFG، ومفكك، ومعالج إعادة تسلسل.

عرض المستودع

hermit

مجموعة أدوات تفاعلية لهندسة عكسية ومعالجة Hermes.

يقوم hermit بفحص وتفكيك وترقيع بنية Hermes bytecode (HBC)، وهو التنسيق الذي تُرسل به تطبيقات React Native شيفرتها JavaScript. افتح ملف .hbc، وتصفح دواله، واقرأ JavaScript المفككة، وعدّل التعليمات والسلاسل والقيم الحرفية في محرر تفاعلي، ثم اكتب ملفًا لا يزال Hermes VM قادرًا على تحميله وتشغيله.

على عكس الأدوات التي تحلل bytecode فقط، أو التي ترقعه في مكانه دون تغيير الأحجام، يعيد hermit تسلسل الملف بالكامل. يمكنه إدراج وحذف التعليمات، وإعادة تحديد مواقع القفزات ومعالجات الاستثناءات، وإعادة بناء جداول السلاسل والقيم الحرفية، وإضافة دوال جديدة وإعادة حساب SHA-1 footer. الملف غير المعدّل يمر ذهابًا وإيابًا بايت ببايت.

  • الميزات
  • إصدارات HBC المدعومة
  • الملفات التنفيذية الجاهزة
  • البناء
  • الحصول على ملف .hbc
  • استخدام REPL
  • التحرير والترقيع
  • أدوات سطر الأوامر
  • واجهة Python API
  • الاختبارات
  • تخطيط المشروع
  • القيود

الميزات

  • المحلل (Parser): الترويسة، جدول السلاسل (بما في ذلك إدخالات UTF-16 وإدخالات overflow)، جدول الدوال (بما في ذلك ترويسات overflow وأجسام bytecode المشتركة)، مخازن القيم الحرفية، معالجات الاستثناءات، معلومات التصحيح، جدول مصادر الدوال.
  • المفكك (Disassembler) مع جداول opcode لكل إصدار (94، 95، 96).
  • مخطط التدفق التحكمي (Control-flow graph) مع تصدير DOT، ومخطط الاستدعاء، والإحالات المرجعية المتقاطعة للسلاسل، واستعادة وحدات Metro.
  • المفكك (Decompiler) من CFG إلى JavaScript قابلة للقراءة: if/else، الحلقات، try/catch، الإغلاقات (closures)، مصفوفات وقيم حرفية للكائنات. حتمي، بدون ذكاء اصطناعي.
  • المرقع البنيوي (Structural patcher): تعديل جسم دالة، تغيير قيم السلاسل والقيم الحرفية، إضافة دالة. تخفيف الفروع (Branch relaxation)، إعادة تحديد مواقع معالجات الاستثناءات، ترويسات دوال overflow، مرور ذهابًا وإيابًا مطابق بايت ببايت.
  • REPL تفاعلي (بنمط GDB) مع محرر bytecode بملء الشاشة.

إصدارات HBC المدعومة

الإصدارالدور
96الهدف الأساسي. ما تستخدمه تطبيقات React Native المُرسلة: RN 0.73 إلى 0.83، و RN 0.84+ مع تعطيل Hermes V1.
94، 95تم التحقق منها. التنسيق مطابق لـ 96، فقط جداول opcode تختلف.

التطبيقات المبنية بـ Hermes V1 (الافتراضي من RN 0.84) تُصدر HBC 98، وهو غير مدعوم بعد. ملاحظات التنسيق في doc/hbc-format/.

الملفات التنفيذية الجاهزة

كل إصدار يحتوي على أرشيفات لـ macOS و Linux، على arm64 و x86_64. لا حاجة إلى Python أو مترجم:

الأرشيفالمحتوى
hermit-<version>-<platform>.tar.gzREPL التفاعلي: ./hermit file.hbc.
hermit-tools-<version>-<platform>.tar.gzأدوات سطر الأوامر المستقلة hbc_*.
SHA256SUMSمجاميع التحقق: shasum -a 256 -c SHA256SUMS.
tar -xzf hermit-0.1.0-macos-arm64.tar.gz
./hermit-0.1.0-macos-arm64/hermit --version

ملفات macOS التنفيذية غير موقّعة. بعد التنزيل، امسح علامة الحجر الصحي مرة واحدة: xattr -dr com.apple.quarantine hermit-0.1.0-macos-arm64. تحتاج إصدارات Linux إلى glibc 2.35 أو أحدث. لا يزال أمر cfg يحتاج إلى تثبيت graph-easy.

يتم إنتاج الإصدارات بواسطة .github/workflows/release.yml عند دفع وسم v*، باستخدام packaging/build-release.sh، والذي يمكنك تشغيله محليًا أيضًا.

البناء

المتطلبات

  • CMake 3.20 أو أحدث ومترجم C++20 (Clang أو GCC).
  • Python 3.10+ مع ترويسات التطوير (تحتاجها pybind11).
  • الوصول إلى الشبكة عند أول تهيئة: يتم جلب pybind11 و Catch2 عبر CMake FetchContent ما لم تكن مثبتة مسبقًا.
  • اختياري: graph-easy لأمر cfg (cpanm Graph::Easy)، و less كعارض صفحاته.

الترجمة

شغّل كل شيء من هذا الدليل (الذي يحتوي على CMakeLists.txt):

cmake -B build
cmake --build build -j

هذا يبني مكتبة libhbc الساكنة، ووحدة Python _libhbc (في build/bindings/)، وأدوات سطر الأوامر (في build/tools/) واختبارات الوحدة. لا يحتاج REPL إلا إلى وحدة Python:

cmake --build build --target _libhbc

يمكن استبعاد الأدوات والاختبارات من البناء، على سبيل المثال لإصدار:

cmake -B build -DCMAKE_BUILD_TYPE=Release -DHERMIT_BUILD_TOOLS=OFF -DHERMIT_BUILD_TESTS=OFF

أعد البناء بنفس الأمر بعد كل تغيير في core/ أو bindings/.

macOS: إذا فشل الربط بخطأ حول SDK مشوّه، وجّه البناء إلى SDK كامل، على سبيل المثال SDKROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX26.5.sdk cmake --build build.

بيئة Python

python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

لا يتم تثبيت الوحدة _libhbc في البيئة الافتراضية. أضف دليل بنائها إلى PYTHONPATH كلما شغّلت hermit:

export PYTHONPATH=$PWD/build/bindings:$PYTHONPATH

الحصول على ملف .hbc

يُرسل تطبيق React Native حزمته كملف عادي:

المنصةالموقع داخل الحزمة
Android (.apk، ملف zip)assets/index.android.bundle
iOS (.ipa، ملف zip)Payload/<App>.app/main.jsbundle

إذا بدأ الملف بالبايتات C6 1F BC 03 C1 03 19 1F، فهو Hermes bytecode. لا يفتح REPL إلا الملفات ذات الامتداد .hbc، لذا أعد تسميته:

unzip -p app.apk assets/index.android.bundle > app.hbc
xxd app.hbc | head -1      # c61f bc03 c103 191f ...

حلّل فقط التطبيقات المسموح لك بدراستها، على سبيل المثال تطبيقاتك الخاصة، أو التطبيقات مفتوحة المصدر لأغراض البحث.

بناء حزم اختبار من المصدر

للحصول على مدخلات صغيرة ومضبوطة، ترجم JavaScript أو TypeScript بمترجم Hermes يُصدر HBC 96 (على سبيل المثال hermesc من react-native 0.73 إلى 0.83، تحت node_modules/react-native/sdks/hermesc/):

hermes -emit-binary -g0 -out hello.hbc hello.js     # -g0: no debug info

تقوم حزمة seeder/ بأتمتة ذلك للبرامج النموذجية في seeder/samples/ وتكتب النتائج إلى seeder/corpus/:

.venv/bin/python -m seeder.compile                       # all samples
.venv/bin/python -m seeder.compile --g0 seeder/samples/loop_sum.js
.venv/bin/python -m seeder.compile --debug seeder/samples/greeting.js

يكتب --g0 الملف <name>_g0.hbc بدون معلومات تصحيح، ويكتب --debug الملف <name>_g.hbc مع معلومات تصحيح كاملة. تحتاج عينات .ts إلى tsc في PATH لديك؛ يُؤخذ المترجم من --hermes (الافتراضي hermes). يبني seeder/build-real-bundle.sh تطبيق React Native مفتوح المصدر حقيقي إلى .hbc.

استخدام REPL

export PYTHONPATH=$PWD/build/bindings:$PYTHONPATH
.venv/bin/python -m cli.main app.hbc

بدون وسيطة ملف يبدأ REPL فارغًا؛ استخدم open <file.hbc>. يُظهر الموجّه إصدار HBC واسم الملف، مع + عند وجود تغييرات غير محفوظة: [hbc v96 | app+] >. يُحفظ السجل في ~/.hermit_history وتُكمل الأوامر تلقائيًا بـ tab.

> info
> strings --identifiers filter:fetch
> functions
> disasm func:12
> decompile func:isPremium
> xrefs string:"api.example.com"
> edit func:isPremium
> patch patched.hbc

تُعنون الدوال بالفهرس أو الاسم (func:12، func:isPremium)، والسلاسل بالفهرس أو القيمة (string:42، string:"hello")، ومواقع القيم الحرفية بالفهرس (array:7).

تنزيل الأداة