Äike BLE authentication bypass default BLE private key allow... #1736
+87
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🤖 Automated Content Update
This PR was automatically generated by the HackTricks News Bot based on a technical blog post.
📝 Source Information
🎯 Content Summary
The post reverse-engineers the Äike electric scooter Android app (React Native compiled to Hermes bytecode) and identifies a critical BLE authentication design/implementation flaw: the scooter fleet uses a shared default BLE “private key” (20 bytes of 0xFF), so any attacker within BLE range can authenticate to and control any nearby scooter (e.g., unlock/lock, open battery tray, change settings).
1) Reverse engineering setup (why dynamic analysis was needed)
The app is React ...
🔧 Technical Details
Reversing React Native apps compiled to Hermes: When RN JavaScript is compiled into Hermes bytecode, static decompilation is often noisy/unreliable. A practical workflow is to (1) decompile native Java/Kotlin bridge code (e.g., with Vineflower) to locate OS/API boundaries, and (2) use dynamic instrumentation (Frida) to observe inputs/outputs and reconstruct protocol logic without fully recovering JS source. Hermes-focused tools (hermes_rs, hermes-dec, hasmer, hbctool) can supplement but runtime logging often yields faster protocol recovery.
BLE protocol extraction by hooking Android GATT APIs: Hook
android.bluetooth.BluetoothGattandandroid.bluetooth.BluetoothGattCallbackmethods for characteristic reads/writes/notifications to dump UUIDs and raw payloads (hex/ASCII). This reveals proprietary BLE authentication steps and command formats, and can support replay/modification of messages once framing is understood.Crypto identifi...
🤖 Agent Actions
Summary:
BluetoothGatt/BluetoothGattCallbackandMessageDigestwith Frida to reconstruct BLE challenge-response flows when RN JS is compiled to Hermes.Tests:
This PR was automatically created by the HackTricks Feed Bot. Please review the changes carefully before merging.