واجهة سطر الأوامر لفك وتجميع Hermes Bytecode.
نظرًا لأن الفريق الأصلي React قام بإنشاء محرك JavaScript الخاص به (المسمى Hermes) لتشغيل تطبيق React Native ، فغالبًا ما يتم تجميع رمز مصدر JavaScript إلى Hermes Bytecode. في مشروع اختبار الاختراق ، وجدت أن بعض التطبيقات الأصلية React قد تم ترحيلها بالفعل إلى محرك Hermes. من المفترض أن أقوم بتحليل تلك التطبيقات أو تصحيحها. لذلك ، قمت بإنشاء HBCtool لمساعدة أي خماسي لاختبار رمز Hermes bytecode.
Hermes هو محرك JavaScript مفتوح المصدر محسن لتشغيل تطبيقات React الأصلية على Android. بالنسبة للعديد من التطبيقات ، سيؤدي تمكين Hermes إلى تحسين وقت بدء التشغيل ، وانخفاض استخدام الذاكرة ، وحجم التطبيق الأصغر. في هذا الوقت ، تشرح هيرميس ميزة تصنيع راي في رد فعل ، ويشرح هذا الدليل كيفية تمكينها.
شكر خاص لـ Erbazz و Jusmistic لمساعدتي في البحث وتطوير هذه الأداة.
لمزيد من المعلومات ، يرجى زيارة:
https://suam.wtf/posts

يمكن العثور على هذا الفيديو بتنسيق mp4 على /emage/hbctool_example.mp4.
لتثبيت HBCtool ، ما عليك سوى استخدام PIP:
pip install hbctool
يرجى تشغيل hbctool --help لإظهار الاستخدام.
hbctool --help
A command-line interface for disassembling and assembling
the Hermes Bytecode.
Usage:
hbctool disasm <HBC_FILE> <HASM_PATH>
hbctool asm <HASM_PATH> <HBC_FILE>
hbctool --help
hbctool --version
Operation:
disasm Disassemble Hermes Bytecode
asm Assemble Hermes Bytecode
Args:
HBC_FILE Target HBC file
HASM_PATH Target HASM directory path
Options:
--version Show hbctool version
--help Show hbctool help manual
Examples:
hbctool disasm index.android.bundle test_hasm
hbctool asm test_hasm index.android.bundle
بالنسبة إلى Android ، يحدد ملف HBC عادةً في دليل
assetsمع اسم ملفindex.android.bundle.
يدعم HBCtool حاليًا إصدار Hermes Bytecode التالي:
لا تتردد في إنشاء مشكلة أو إرسال طلب الدمج. على أي حال تريد المساهمة في هذا المشروع. أنا سعيد جدًا بذلك.
ومع ذلك ، يرجى تشغيل اختبار الوحدة قبل تقديم طلب السحب.
cd hbctool
python test.py
أستخدم الشعر لبناء هذه الأداة. لبناءها بنفسك ، ببساطة تنفيذ:
poetry installpoetry buildpip install --force-reinstall dist/hbctool-<VERSION>-py3-none-any.whl