πŸ”
AppSec & Pentest
Mobile
Mobile
  • Mobile
  • Pentesting Methodology
  • Programming
    • Аналитика
      • Some Papers
      • ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ²/ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ Ρ‚ΠΏ
      • Twitter ads
      • Branch.IO
      • Adjust
      • Amplitude Analytics
      • Paypal for Business
      • Emarsys
      • MobileAppTracker
      • AppsFlyer
        • About
        • Настройка Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°
        • ИсслСдованиС ΠΊΠΎΠ΄Π°
        • Examples
      • Fabric
      • Mixpanel Analytics
      • Facebook ads
      • Yandex
      • Firebase SDK
        • Intro
        • ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
        • Firebase Cloud Messaging
        • ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹
          • Firebase
          • FirebaseABTesting
          • FirebaseAnalytics[Interop]
          • FirebaseAppDistribution
          • FirebaseAuth[Interop]
          • FirebaseCore
          • FirebaseCoreDiagnostics[Interop]
          • FirebaseCrashlytics
          • FirebaseDatabase
          • FirebaseDynamicLinks
          • FirebaseFirestore[Swift]
          • FirebaseFunctions
          • FirebaseInAppMessaging
          • FirebaseInstallations
          • FirebaseInstanceID
          • FirebaseMessaging
          • FirebaseRemoteConfig
          • FirebaseStorage[Swift]
          • GoogleDataTransport
          • GoogleDataTransportCCTSupport
          • GoogleUtilities
          • GoogleUtilitiesComponents
      • Crashlytics
      • GTM: Google Tag Manager
      • Google Maps
      • Google Analytics
      • Flurry
      • HockeyApp
    • iOS
      • ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹
      • iOS: SSL Pinning
      • ЯП
        • Swift
          • VIPER (Architecture)
          • ΠžΠ±Ρ‰Π΅Π΅
          • UI
          • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
          • Swift Style Guide
        • Swift Security
          • ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ уязвимостСй
      • Frameworks and Libraries
        • [Pentest] App extensions
          • About
          • Extension types
          • Static Analys
          • Dynamic Analys
        • [Pentest] App Notifications
        • Async
        • Π‘DP
        • Core
        • Cryptography
        • Jailbreak Detection
        • Network
          • AFNetworking
          • Alamofire
          • HTTP Requests
        • Other
        • Push
        • RxSwift
        • Store Data
        • UI
          • SwiftUI
          • WebView in iOS App
          • UI
        • VPN Detection
      • XCode
        • Build Project
        • Build Project via Command Line
        • Install IPA
        • Templates
      • Π”Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты
        • mint
      • БистСмы зависимостСй ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²
        • Carthage
        • CocoaPods
      • Troubleshooting
    • Android
      • АрхитСктура Android прилоТСния
        • АрхитСктура Kotlin-прилоТСния
        • Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Android Library, Android APP ΠΈ Java Library
        • Basic
          • Activities
          • Broadcast Receivers
          • Content Providers
          • Custom URL Schemes
          • Intents
          • Notifications
          • PendingIntents
          • Permissions
          • Services
          • Android WebView
      • ЯП
        • Java
          • Bundle
        • Kotlin
          • Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Intent
          • Call Native Functions
      • Frameworks
        • AndroidX
        • LiveData
        • Lifecycle
        • Background Tasks
          • DownloadManager
          • AlarmManager
          • Foreground Services (ΠΈΠ»ΠΈ просто Services)
          • WorkManager
        • Room
        • Data binding
          • Basic
        • NDK
          • Install and Build
          • OpenSSL
          • libgit2 build
        • Navigation
        • Π Π°Π±ΠΎΡ‚Π° с изобраТСниями
          • Glide
        • Video/Audio
          • Communications
            • Jitsi
        • JS Engines
          • FB: Hermes
          • Duktape
        • DI: Dependency Injection
          • Π—Π°Ρ‡Π΅ΠΌ?
          • koin
          • kodein
          • dagger2
        • Retrofit / OkHTTP
          • Intro
          • Example Usage
            • Parse error body
            • ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² запросов
            • Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° модуля
            • HttpApi
            • ControllerApi
          • SSLPinning
        • Google Play Authorization
      • Automating build (android in docker)
      • Android Studio
        • Build Project
        • БоставныС части ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
      • Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
        • LeakCanary
        • Mocking
        • Настройка Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования
        • Remote Method Invocation
        • bundletool (aab -> apk)
      • ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
        • Kotlin
      • API levels & NDK Version
    • PWA
    • Hybrid App
      • Frameworks
        • Frameworks List
        • Electron
        • React Native
      • Google Web Toolkit
      • Dart/Flutter
      • Kotlin
      • Game Develope
    • Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ
      • Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ PIN-ΠΊΠΎΠ΄Π° ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ
      • Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния для людСй с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями
      • Secure Networking on iOS
    • AirWatch MDM
    • Π”ΠΈΡΡ‚Ρ€ΠΈΠ±ΡŒΡŽΡ†ΠΈΡ
      • AppCenter
      • App Store
      • App Store Connect
      • AppTester
      • Crashlytics
      • Cydia
      • Diawi
      • Google Play
      • Hockey App
      • TestFairy
      • TestFlight
      • Transporter.app
      • Firebase AppDistribution
  • Forensic
    • Bluetooth
    • NFC
    • GSM
    • SIM-cards
    • iOS
      • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ скрипты
        • Π—Π°Π±ΠΎΡ€ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ΠΎΠ² с Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°
        • otool
        • lipo
        • plist reader
        • backup reader
        • libimobiledevice
        • Cydia Impactor
        • App Signature
      • АрхитСктура ОБ
        • Π¨ΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
        • АрхитСктура iOS прилоТСния
        • iBoot
        • Secure Enclave (SEP)
        • Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹
      • Ѐайловая систСма
        • Π“Π΄Π΅ Ρ‡Ρ‚ΠΎ хранится
        • ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы
      • Create/Decrypt Backup
      • IPA dump
        • Frida IPA dump
        • iOS 11 ΠΈ Π²Ρ‹ΡˆΠ΅
        • МладшС iOS 10
      • Jailbreak
      • DFU Ρ€Π΅ΠΆΠΈΠΌ (Ρ€Π΅ΠΆΠΈΠΌ восстановлСния ΠΈ обновлСния)
    • Android
      • Ѐайловая систСма
        • Android KeyStore
      • ΠžΠ±Ρ‰Π°Ρ информация ΠΎ систСмС: ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ‚ΡƒΠ»Π·Ρ‹ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
      • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ подписи apk
      • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ восстановлСниС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ
      • ΠŸΠ°ΠΌΡΡ‚ΡŒ процСссов
      • Root
        • Common
        • A/B-Ρ€Π°Π·Π΄Π΅Π»Ρ‹
        • Su
        • TWRP
  • Pentest
    • Уязвимости ΠΈ Атаки
      • Изи Π±Π°Π³ΠΈ
      • Common
      • iOS
      • Android
      • AppLinks
      • Auth
        • Biometrics bypass
        • PIN Bruteforce
        • Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ SMS-Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
      • USSD Attack
      • Java Object Deserialization
      • Lack of binary protection (anti-debugging) controls
      • Disabled security features in binary libraries
      • Lack of exploit mitigations (e.g. PIE, ARC, or stack canaries)
      • Path disclosure in the binary
      • Runtime hacking exploits (e.g. exploits that are only possible in a jailbroken environment)
      • Snapshot/pasteboard leakage
      • User data stored unencrypted in the file system and/or external storage
      • Android Task Hijacking
      • WebView
        • Check list
        • Example Web View XSS in iOS app
        • CVE-2020-6506: uXSS in Android WebView
    • ΠšΠ΅ΠΉΡΡ‹
      • ΠžΠ±Ρ‰ΠΈΠ΅
        • Firebase
        • ΠŸΡ€ΠΎ сниффинг Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° HTTP2/gRPC
        • Dump memory
      • Android
        • Simple Library RCE for Android
        • Π—Π°ΠΊΠΈΠ½ΡƒΡ‚ΡŒ GApps Π½Π° эмулятор
        • Android Dependency Check
        • Π—Π°ΠΏΡ€Π΅Ρ‚ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π° ΠΈ Π΄Π΅Ρ‚Π΅ΠΊΡ‚ овСрлСя
        • Disable/Delete any app w/o root
      • iOS
        • App Transport Security
        • Info.plist
        • Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ
        • Установка IPA-ΠΎΠ±Ρ€Π°Π·Π° Π½Π° iOS Π±Π΅Π· XCode, Cydia Impactor
        • Π‘ΠΎΡ€ΡŒΠ±Π° со ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π°ΠΌΠΈ
        • Π‘Π»ΡŽΡ€ΠΈΠ½Π³ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π΅ ΠΎΠΊΠΎΠ½
        • Установка нСподписанных IPA
      • Hybrid Apps
        • Flutter SDK: RE/Capture Traffic
    • Bug Bounty
    • Настройка окруТСния
      • SASTs
      • Frida & Objection
      • Pentest WebView
      • iOS
        • Platform
        • Network
          • Π—Π°ΠΏΠΈΡΡŒ Ρ‚Ρ€Π°Ρ„Ρ„ΠΈΠΊΠ° iOS
          • iOS SSL Unpinning
      • Android
        • Reverse Engineering
        • Platform
        • Network
          • Π—Π°ΠΏΠΈΡΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Android
          • Android: SSL Unpinning
    • Mitigations
    • Books & Papers
    • Companies & People & Blogs
    • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ скрипты
      • ΠšΠΎΠΌΠ±Π°ΠΉΠ½Ρ‹
      • Android
        • grep: Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· APK
        • Π‘ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π½Π΅Π΅
        • Бтарая хСрня
          • Drozer
          • Π Π°Π·Π½ΠΎΠ΅
      • iOS
        • SAST
          • ipanema
          • iblessing
        • meetle
        • Static Analys with Frida
        • iFunBox
        • iOS Binary Analysis
        • needle
        • idb
        • ios emulator
        • passionfruit
        • Grapefruit ("NG passionfruit")
        • XPC Sniffing
        • SAST in MobSF
        • Поиск ΠΏΠΎ Ρ„Π°ΠΉΠ»Π°ΠΌ
      • hybrid app
        • Cordova
        • Xamarin
        • Electron
      • FBFlipper
      • truegaze
  • Reverse Engineering
    • Android
      • Tools
        • Decompilers
        • TODO: Androguard
        • TODO: AndroPyTool
        • TODO: LIEF-project
        • TODO: MobSF
        • JADX
        • dex2jar
        • Diff APKs, JARs,..
        • APKiD
        • enjarify
        • adb/fastboot
          • Install
          • Usage
          • Troubleshooting
          • На Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π»ΠΈΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· adb (Π² поисках сСрвисов)
        • DexCalibur
      • ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ нСсколько JAR
      • Build AOSP in Docker
      • ΠŸΠ°Ρ‚Ρ‡ΠΈΠ½Π³
      • Поиск ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… строк Π² Smali
      • Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ frida
    • iOS
      • CVEs
      • Tools
        • iRET
        • xcrun
        • otool: check binary encryption
      • ΠŸΠ°Ρ‚Ρ‡ΠΈΠ½Π³
      • Start iOS Debug Server
      • iOS Audio Framework
      • Facebook SDK
      • Swift
      • Attack Secure Boot of SEP
      • iOS Kernel Firmware
    • Tools
      • frida
        • Установка
        • Frida CLI
        • Запуск скриптов
        • ΠžΠ±Ρ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (JS API)
        • Frida Projects
        • ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
          • ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹
          • Android
          • iOS
          • Unity/Mono
          • ΠžΠ±Ρ‰Π΅Π΅
            • Π’Ρ‹Π²ΠΎΠ΄ Callstack
            • ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ инструкции ΠΏΠΎ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ
            • ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ
            • ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ (sub_*)
      • objection
      • luject
      • emulators
    • ΠšΠ΅ΠΉΡΡ‹
      • Hybrid App
        • Intro
        • Hermes
        • Xamarin
        • React Native
        • Unity
        • Debug Hybrid App
    • Π‘Ρ‚Π°Ρ‚ΡŒΠΈ
  • Administration
    • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹
      • Android
        • uiautomatorviewer
        • jobb
        • archquery
        • apkanalyzer
        • avdmanager
        • emulator
        • perfetto
        • monkeyrunner
        • Настройка окруТСния
        • sdkmanager
Powered by GitBook
On this page
  • Tools
  • hermes
  • hbcdump
  • hdb
  • hermesc
  • hvm
  • hbctool
  • hermes-dec
  • [Frida] Android

Was this helpful?

  1. Reverse Engineering
  2. ΠšΠ΅ΠΉΡΡ‹
  3. Hybrid App

Hermes

PreviousIntroNextXamarin

Last updated 2 years ago

Was this helpful?

Hermes - JS Engine. ΠŸΠ΅Ρ€Π΅Π³ΠΎΠ½ΡΠ΅Ρ‚ jS Π² Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ ΠΈ ΠΎΡ‚ этого всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅ быстрСС

release Π±ΠΈΠ½Π°Ρ€ΠΈ:

О ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π² React Native ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ React Native Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ index.android.bundle Π±ΡƒΠ΄Π΅Ρ‚ сСриализован (Π±ΠΈΠ½Π°Ρ€Ρ‰ΠΈΠ½Π°)

$ hermes -b --dump-bytecode index.android.bundle
Error deserializing bytecode: Wrong bytecode version. Expected 74 but got 62%
$ hermes -version
74

Π•ΡΡ‚ΡŒ нСсколько Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² hermes:
v0.8.0 - 83
v0.5.0 - 74
v0.3.* - 72
v0.2.1 - 62

Tools

ΠΎΡ„ Π±ΠΈΠ½Π°Ρ€ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ ссылкС:

Π’ΡƒΠ΄Π° входят:

  • hbcdump

  • hdb

  • hermes

  • hermesc

  • hvm

hermes

Запуск JS-ΠΊΠΎΠ΄Π°:
$ hermes test.js

Compiling and Executing JavaScript with Bytecode:
$ hermes -emit-binary -out test.hbc test.js
$ hermes test.hbc

hbcdump

$ ./hbcdump -objdump-disassemble index.android.bundle
hbcdump> dis 234

d0310a88a868dfb1ee21d12e9011725b1f716875:     file format HBC-74

Disassembly of section .text:

000000000002ca48 <_0>:
0002ca48:       30 44 08 00 00        DeclareGlobalVar        $0x000844
0002ca4d:       30 48 08 00 00        DeclareGlobalVar        $0x000848
[...]
hbcdump> quit

Зная ID строк, инструкций, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Ρ‡Π΅Ρ€Π΅Π· hbctool, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€), ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния

./hbcdump -human -mode=function -pretty-disassemble index.android.bundle

hbcdump> help
These commands are defined internally. Type `help' to see this list.
Type `help name' to find out more about the function `name'.

epilogue
filename
at-virtual
block
summary
function
instruction
io
function-info
help
disassemble
string

hbcdump>

hbcdump> help string
Display string for ID

USAGE: string <STRING_ID>

hbcdump> help filename
Display file name for ID

USAGE: filename <FILENAME_ID>

hbcdump> help at-virtual
Display information about the function at a given virtual offset.

USAGE: at-virtual <OFFSET>

hdb

JavaScript command line debugger

hermesc

Standalone Hermes compiler. This can compile JavaScript to Hermes bytecode, but does not support executing it.

hvm

Standalone Hermes VM. This can execute Hermes bytecode, but does not support compiling it.

hbctool

ПослС распаковки Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°: instruction.hasm (дизассСмблированный ΠΊΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ листингом), metadata.json (содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π³Π΄Π΅ находятся ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚ΠΏ), string.json (строки ΠΈ ΠΈΡ… ID).

pip install hbctool

(hack) bongtrop@bongtrop-pc:lab/ $ hbctool disasm HermesReversingLab/assets/index.android.bundle HermesReversingLabHASM
[*] Disassemble 'HermesReversingLab/assets/index.android.bundle' to 'HermesReversingLabHASM' path
[*] Hermes Bytecode [ Source Hash: d0310a88a868dfb1ee21d12e9011725b1f716875, HBC Version: 74 ]
[*] Done

After disassembling HBC (Hermes Bytecode) to HASM (I named it; stands for Hermes Assembly). 
In the HermesReversingLabHASM directory, there are 3 files as follows:

    metadata.json: stores the important information of Hermes bytecode file
    instruction.hasm: stores the application instructions or logics in HASM format (edit application logics in this file)
    string.json: store the application strings or texts (edit strings in this file)

Edit the application’s instruction in HermesReversingLabHASM/instruction.hasm.

Save the file and assemble HASM to the HBC by using hbctool.

(hack) bongtrop@bongtrop-pc:lab/ $ hbctool asm HermesReversingLabHASM HermesReversingLab/assets/index.android.bundle 
[*] Assemble 'HermesReversingLabHASM' to 'HermesReversingLab/assets/index.android.bundle' path
[*] Hermes Bytecode [ Source Hash: d0310a88a868dfb1ee21d12e9011725b1f716875, HBC Version: 74 ]
[*] Done

ΠΈ Π΄Π°Π»Π΅Π΅ подписываСм apk

hermes-dec

[Frida] Android

ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ядру, ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π΅ смог ΠΏΠΎΠΊΠ°


console.log("[+] Start");
Java.perform(function() {
    try {
        var ReactInstanceManagerHolder = Java.use('org.jitsi.meet.sdk.ReactInstanceManagerHolder');
        console.log("[+] ReactInstanceManagerHolder Found");
        var reactInstanceManager = ReactInstanceManagerHolder.getReactInstanceManager();  // com.facebook.react.h
        var reactContext = reactInstanceManager.i(); // com.facebook.react.bridge.ReactContext
        console.log("[+] Get reactContext");
        console.log("[+] test: " + reactContext.hasCurrentActivity());
    } catch (err) {
        console.log("[-] ReactInstanceManagerHolder Not Found")
    }
});

Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ

import com.facebook.hermes.reactexecutor.HermesExecutorFactory;
import com.facebook.react.ReactInstanceManager;

// Use the Hermes JavaScript engine.
HermesExecutorFactory jsFactory = new HermesExecutorFactory();

reactInstanceManager
    = ReactInstanceManager.builder()
        .setApplication(activity.getApplication())
        .setCurrentActivity(activity)
        .setBundleAssetName("index.android.bundle")
        .setJSMainModulePath("index.android")
        .setJavaScriptExecutorFactory(jsFactory)
        .addPackages(packages)
        .setUseDeveloperSupport(BuildConfig.DEBUG)
        .setInitialLifecycleState(LifecycleState.RESUMED)
        .build();

Π­Ρ‚ΠΎ Π±Ρ‹Π»Π° ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π΄ΠΎ jsFactory, ΠΎΠ΄Π½Π°ΠΊΠΎ, всС Ρ€Π°Π²Π½ΠΎ Π½Π΅ смог Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π² этом контСкстС. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΄Π°Π»Π΅Π΅ - Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ React Debug, ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ· frida.

β€” Hermes bytecode disassembler

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ для Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ дизассСмблинга (Π² сравнСнии с hbcdump) ΠΈ возмоТности ΠΏΠ°Ρ‚Ρ‡ΠΈΠ½Π³Π°.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ P1sec:

https://facebook.github.io/react-native/docs/hermes
https://github.com/facebook/hermes/releases
https://facebook.github.io/react-native/docs/hermes
https://github.com/facebook/hermes/releases
hbcdump
hbctool
https://github.com/P1sec/hermes-dec/