Una interfaz de línea de comandos para desmontar y ensamblar el bytecodo Hermes.
Dado que el equipo nativo de React creó su propio motor JavaScript (llamado Hermes) para ejecutar la aplicación React Native, el código fuente de JavaScript a menudo se compila en el Bytecode Hermes. En el proyecto de prueba de penetración, descubrí que algunas aplicaciones nativas de React ya se han migrado al motor Hermes. Realmente es directo para analizar o parchear esas aplicaciones. Por lo tanto, creé HBCTOOL para ayudar a cualquier Pentester a probar el Bytecode Hermes.
Hermes es un motor JavaScript de código abierto optimizado para ejecutar aplicaciones nativas de React en Android. Para muchas aplicaciones, habilitar Hermes dará como resultado un mejor tiempo de inicio, una disminución del uso de la memoria y un tamaño de aplicación más pequeño. En este momento, Hermes es una característica nativa de reacción, y esta guía explica cómo habilitarla.
Un agradecimiento especial a Erbazz y Jusmistic por ayudarme a investigar y desarrollar esta herramienta.
Para obtener más información, visite:
https://suam.wtf/posts/react-native-application-static-analysis-en/

Este video con formato MP4 se puede encontrar en /image/hbctool_example.mp4.
Para instalar HBCTOOL, simplemente use PIP:
pip install hbctool
Por favor, ejecute hbctool --help para mostrar el uso.
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
Para Android, el archivo HBC normalmente se ubica en el directorio
assetsconindex.android.bundleFileName.
HBCTOol actualmente es compatible con la siguiente versión de Bytecode Hermes:
No dude en crear un problema o enviar la solicitud de fusión. De todos modos, quieres contribuir con este proyecto. Estoy muy feliz por eso.
Sin embargo, ejecute la prueba unitaria antes de enviar la solicitud de extracción.
cd hbctool
python test.py
Utilizo poesía para construir esta herramienta. Para construirlo usted mismo, simplemente ejecute:
poetry installpoetry buildpip install --force-reinstall dist/hbctool-<VERSION>-py3-none-any.whl