Интерфейс командной строки для разобравания и сборки байт-кода Hermes.
Поскольку нативная команда React создала свой собственный двигатель JavaScript (названный Hermes) для запуска нативного приложения React, исходный код JavaScript часто собирается в Hermes Bytecode. В проекте тестирования на проникновение я обнаружил, что некоторые нативные приложения реагируют на двигатель Hermes. Для меня действительно стремиться анализировать или исправить эти приложения. Поэтому я создал HBCTool для того, чтобы помочь любому Племеру проверить байт -код Hermes.
Hermes-это двигатель JavaScript с открытым исходным кодом, оптимизированный для запуска нативных приложений React на Android. Для многих приложений позволить Гермеса привести к улучшению времени запуска, уменьшению использования памяти и меньшему размеру приложения. В это время Hermes является нативной функцией React-In React, и это руководство объясняет, как ее включить.
Особая благодарность Erbazz и JusMistic за помощь в исследовании и разработке этого инструмента.
Для получения дополнительной информации, пожалуйста, посетите:
https://suam.wtf/posts/react-native-application-static-analysis-en//

Это видео с форматом MP4 можно найти по адресу /image/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.bundleFileName.
Hbctool в настоящее время поддерживает следующую версию Hermes Bytecode:
Не стесняйтесь создавать проблему или отправить запрос на слияние. В любом случае вы хотите внести свой вклад. Я очень рад этому.
Однако, пожалуйста, запустите модульный тест перед передачей запроса на вытяжение.
cd hbctool
python test.py
Я использую поэзию для создания этого инструмента. Чтобы создать его самостоятельно, просто выполните:
poetry installpoetry buildpip install --force-reinstall dist/hbctool-<VERSION>-py3-none-any.whl