Eine Befehlszeilenschnittstelle zum Zerlegen und Zusammenstellen des Hermes-Bytecode.
Da das React Native Team seine eigene JavaScript -Engine (genannt Hermes) für die Ausführung der React Native -Anwendung erstellt hat, wird der JavaScript -Quellcode häufig mit dem Hermes -Bytecode zusammengestellt. Im Penetrationstestprojekt stellte ich fest, dass einige reag -native Anwendungen bereits in den Hermes -Motor migriert wurden. Es ist wirklich der Kopf für mich, diese Anwendungen zu analysieren oder zu pflücken. Daher habe ich HBCTool erstellt, um jedem Pentester geholfen zu haben, den Hermes -Bytecode zu testen.
Hermes ist eine Open-Source-JavaScript-Engine, die für den Ausführen von React Native Apps auf Android optimiert ist. Für viele Apps führt das Aktivieren von Hermes zu einer verbesserten Startzeit, einer verringerten Speicherverwendung und einer kleineren App-Größe. Zu diesem Zeitpunkt ist Hermes ein natives Opt-In-React-Merkmal, und in dieser Anleitung wird erläutert, wie man es aktiviert.
Besonderer Dank geht an Erbazz und jusmistisch, dass er mir bei der Erforschung und Entwicklung dieses Tools helfen kann.
Weitere Informationen finden Sie unter:
https://suam.wtf/posts/react-native-application-static-analysis-en/

Dieses Video mit MP4 -Format finden Sie unter /image/hbctool_example.mp4.
Um HBCTool zu installieren, verwenden Sie einfach PIP:
pip install hbctool
Bitte führen Sie hbctool --help aus, um die Nutzung zu zeigen.
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
Für Android befindet sich die HBC -Datei normalerweise im Verzeichnis
assetsmitindex.android.bundleDateiname.
HBCTOOL unterstützt derzeit die folgende Hermes -Bytecode -Version:
Fühlen Sie sich frei, ein Problem zu erstellen oder die Merge -Anfrage einzureichen. Wie auch immer, Sie möchten dieses Projekt beibehalten. Ich bin sehr glücklich darüber.
Bitte führen Sie den Unit -Test jedoch aus, bevor Sie die Pull -Anfrage abgeben.
cd hbctool
python test.py
Ich benutze Poesie, um dieses Tool zu erstellen. Um es selbst zu bauen, führen Sie einfach aus:
poetry installpoetry buildpip install --force-reinstall dist/hbctool-<VERSION>-py3-none-any.whl