Created
February 17, 2026 04:15
-
-
Save zhuowei/fe8e0d4d28fc4be07b2c5787b8620704 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from cryptography.hazmat.primitives.asymmetric import ec, utils | |
| from cryptography.hazmat.primitives import hashes | |
| # validating Meta Ray-Ban's communication protocol's EnableTrust message | |
| """ | |
| logcat: | |
| 10-31 01:31:36.281 16311 17245 I BleConnection-Hypernova: Started enable trust process | |
| 10-31 01:31:36.284 16311 17245 I connectivity::Identity: ---------------------------------------------- | |
| 10-31 01:31:36.284 16311 17245 I connectivity::Identity: Enable Trust | |
| 10-31 01:31:36.284 16311 17245 I connectivity::Identity: TX Challenge: 2f5fb6cb724147ace0053f4038658dba03e80d76b00fbf934335d5f8614e7c25 | |
| 10-31 01:31:36.284 16311 17245 I connectivity::Identity: RX Challenge: 503a52801474ecd5180e57909ffff563cea717c8c97040291136cde2f835cec0 | |
| 10-31 01:31:36.294 16311 17245 I connectivity::Identity: ---------------------------------------------- | |
| 10-31 01:31:36.294 16311 17245 I connectivity::Identity: Sending TX Trust | |
| 10-31 01:31:36.294 16311 17245 I connectivity::Identity: App Identifier: 28ab73bfa5a5ab9fd6d1d5609f0005c3eb305f1f0d38dcf1505643cc21f926d4 | |
| 10-31 01:31:36.294 16311 17245 I connectivity::Identity: App Signature: 8f2631baaa7a902d2a612d62c7943d9b77f238c48e831dbc49270554685c674c6d336a0cb144d7765205d814c64bdc9eb93845d0df55cce15a504e9c7c12de77 | |
| """ | |
| """ | |
| Frida dump: | |
| airshield::SHA256::Incremental::update: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF | |
| 6fcc4b5e10 81 a2 5f bd b7 1d 55 13 39 0d 22 19 a0 90 b2 d4 .._...U.9."..... | |
| 6fcc4b5e20 bf 0e c1 93 f5 59 38 67 5b 64 94 0a 28 7d 12 97 .....Y8g[d..(}.. | |
| 6fcc4b5e30 5d 63 91 b5 93 96 c6 f7 08 c4 a1 bb 7c 37 9d 66 ]c..........|7.f | |
| 6fcc4b5e40 3d 56 c7 83 a5 28 b9 e1 59 96 dd 84 fb f1 c1 dd =V...(..Y....... | |
| mbedtls_sha256_finish 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF | |
| 6e1575a288 28 ab 73 bf a5 a5 ab 9f d6 d1 d5 60 9f 00 05 c3 (.s........`.... | |
| 6e1575a298 eb 30 5f 1f 0d 38 dc f1 50 56 43 cc 21 f9 26 d4 .0_..8..PVC.!.&. | |
| """ | |
| public_key_hex = """ | |
| 81 a2 5f bd b7 1d 55 13 39 0d 22 19 a0 90 b2 d4 | |
| bf 0e c1 93 f5 59 38 67 5b 64 94 0a 28 7d 12 97 | |
| 5d 63 91 b5 93 96 c6 f7 08 c4 a1 bb 7c 37 9d 66 | |
| 3d 56 c7 83 a5 28 b9 e1 59 96 dd 84 fb f1 c1 dd | |
| """ | |
| signature_hex = "8f2631baaa7a902d2a612d62c7943d9b77f238c48e831dbc49270554685c674c6d336a0cb144d7765205d814c64bdc9eb93845d0df55cce15a504e9c7c12de77" | |
| #signed_data_hex = "503a52801474ecd5180e57909ffff563cea717c8c97040291136cde2f835cec0" | |
| signed_data_hex = "2f5fb6cb724147ace0053f4038658dba03e80d76b00fbf934335d5f8614e7c25" | |
| signature = bytes.fromhex(signature_hex) | |
| signed_data = bytes.fromhex(signed_data_hex) | |
| signature_r = int.from_bytes(signature[0:32], "big") | |
| signature_s = int.from_bytes(signature[32:64], "big") | |
| signature_dss = utils.encode_dss_signature(signature_r, signature_s) | |
| public_key = bytes.fromhex(public_key_hex) | |
| peer_public_key = ec.EllipticCurvePublicKey.from_encoded_point( | |
| curve=ec.SECP256R1(), | |
| data=bytes([0x04]) + | |
| public_key) | |
| peer_public_key.verify(signature_dss, signed_data, ec.ECDSA(utils.Prehashed(hashes.SHA256()))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment