Hermes Bytecode를 분해 및 조립하기위한 명령 줄 인터페이스.
React Native 팀은 React Native Application을 실행하기 위해 자체 JavaScript 엔진 (Hermes)을 만들었으므로 JavaScript 소스 코드는 종종 Hermes 바이트 코드로 컴파일됩니다. 침투 테스트 프로젝트에서 일부 React Native 응용 프로그램이 이미 Hermes 엔진으로 마이그레이션 된 것을 발견했습니다. 해당 응용 프로그램을 분석하거나 패치하는 것은 정말로 제가됩니다. 따라서 펜터가 헤르메스 바이트 코드를 테스트 할 수 있도록 HBCTool을 만들었습니다.
Hermes는 Android에서 React Native Apps를 실행하도록 최적화 된 오픈 소스 JavaScript 엔진입니다. 많은 앱의 경우 헤르메스를 활성화하면 시작 시간이 개선되고 메모리 사용이 줄어들고 앱 크기가 작습니다. 현재 Hermes는 옵트 인 React Native 기능 이며이 가이드는이를 활성화하는 방법을 설명합니다.
이 도구를 연구하고 개발하는 데 도움을 준 Erbazz와 Jusmistic에게 특별한 감사를드립니다.
자세한 내용은 다음을 방문하십시오.
https://suam.wtf/posts/react-native-application-ctatic-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 파일은 일반적으로
index.android.bundlefilename을 사용하여assetsDirectory에서 찾습니다.
HBCTool은 현재 다음 Hermes Bytecode 버전을 지원합니다.
자유롭게 문제를 만들거나 병합 요청을 제출하십시오. 어쨌든 당신은이 프로젝트에 기여하고 싶습니다. 나는 그것에 대해 매우 행복합니다.
그러나 풀 요청을 제출하기 전에 단위 테스트를 실행하십시오.
cd hbctool
python test.py
나는시를 사용 하여이 도구를 구축합니다. 직접 구축하려면 간단히 실행하십시오.
poetry installpoetry buildpip install --force-reinstall dist/hbctool-<VERSION>-py3-none-any.whl