Une interface de ligne de commande pour le démontage et l'assemblage du bytecode Hermes.
Étant donné que l'équipe Native React a créé son propre moteur JavaScript (nommé Hermes) pour exécuter l'application Native React, le code source JavaScript est souvent compilé avec le bytecode Hermes. Dans le projet de test de pénétration, j'ai constaté que certaines applications natives React ont déjà été migrées vers le moteur Hermès. C'est vraiment la tête pour moi d'analyser ou de corriger ces applications. Par conséquent, j'ai créé HBCTool pour aider tout Penter à tester le bytecode Hermes.
Hermes est un moteur JavaScript open source optimisé pour exécuter les applications natives React sur Android. Pour de nombreuses applications, l'activation des Hermes entraînera une amélioration du temps de démarrage, une diminution de l'utilisation de la mémoire et une taille plus petite des applications. À l'heure actuelle, Hermès est une fonctionnalité indigène de React-in React, et ce guide explique comment l'activer.
Un merci spécial à Erbazz et justisme de m'avoir aidé à rechercher et à développer cet outil.
Pour plus d'informations, veuillez visiter:
https://suam.wtf/posts/react-native-application-static-analysis-en/

Cette vidéo avec le format MP4 peut être trouvée sur /image/hbctool_example.mp4.
Pour installer HBCTool, utilisez simplement PIP:
pip install hbctool
Veuillez exécuter hbctool --help pour montrer l'utilisation.
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
Pour Android, le fichier HBC se situe normalement dans le répertoire
assetsavecindex.android.bundlefilename.
HBCTool prend actuellement en charge la version Bytecode Hermes suivante:
N'hésitez pas à créer un problème ou à soumettre la demande de fusion. Quoi qu'il en soit, vous souhaitez contribuer ce projet. J'en suis très content.
Cependant, veuillez exécuter le test unitaire avant de soumettre la demande de traction.
cd hbctool
python test.py
J'utilise de la poésie pour construire cet outil. Pour le construire vous-même, exécutez simplement:
poetry installpoetry buildpip install --force-reinstall dist/hbctool-<VERSION>-py3-none-any.whl