Antarmuka baris perintah untuk membongkar dan merakit Hermes bytecode.
Karena tim React Native membuat mesin JavaScript mereka sendiri (bernama Hermes) untuk menjalankan aplikasi React Native, kode sumber JavaScript sering dikompilasi ke Hermes bytecode. Dalam proyek uji penetrasi, saya menemukan bahwa beberapa aplikasi asli bereaksi telah dimigrasi ke mesin Hermes. Benar -benar kepala bagi saya untuk menganalisis atau menambal aplikasi tersebut. Oleh karena itu, saya membuat hbctool untuk membantu pentester mana pun untuk menguji bytecode Hermes.
Hermes adalah mesin JavaScript open-source yang dioptimalkan untuk menjalankan aplikasi React Native di Android. Untuk banyak aplikasi, memungkinkan Hermes akan menghasilkan waktu start-up yang lebih baik, penurunan penggunaan memori, dan ukuran aplikasi yang lebih kecil. Pada saat ini Hermes adalah fitur asli yang bereaksi opt-in, dan panduan ini menjelaskan cara mengaktifkannya.
Terima kasih khusus kepada Erbazz dan Jusmistic karena telah membantu saya meneliti dan mengembangkan alat ini.
Untuk informasi lebih lanjut, silakan kunjungi:
https://suam.wtf/posts/react-native-application-static-analysis-en/

Video ini dengan format MP4 dapat ditemukan di /image/hbctool_example.mp4.
Untuk menginstal hbctool, cukup gunakan PIP:
pip install hbctool
Harap jalankan hbctool --help untuk menunjukkan penggunaannya.
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
Untuk Android, file HBC biasanya ditempatkan di direktori
assetsdenganindex.android.bundlenama file.
HBCTOOL saat ini mendukung versi Hermes Bytecode berikut:
Jangan ragu untuk membuat masalah atau mengirimkan permintaan gabungan. Pokoknya Anda ingin menyumbangkan proyek ini. Saya sangat senang tentang itu.
Namun, jalankan tes unit sebelum mengirimkan permintaan tarik.
cd hbctool
python test.py
Saya menggunakan puisi untuk membangun alat ini. Untuk membangunnya sendiri, cukup jalankan:
poetry installpoetry buildpip install --force-reinstall dist/hbctool-<VERSION>-py3-none-any.whl