Hex 编码 (十六进制)
🔤 二进制的十六进制表示,r0capture 输出明文时常用。
是什么
每字节(8 位)用两个十六进制字符(0-9 a-f)表示。如字节 0x48 显示为 48 或 0x48。
与 Base64 对比
| 维度 | Hex | Base64 |
|---|---|---|
| 字符集 | 0-9 a-f | A-Za-z0-9+/ |
| 膨胀率 | 2 倍 | 1.33 倍 |
| 可读性 | 高(直接看字节) | 低 |
| 用途 | 调试/密钥/哈希 | 传输 |
r0capture 里的 Hex
1. myhexdump 输出
0000 47 45 54 20 2f 61 70 69 GET /api左侧 hex,右侧 ASCII,便于看二进制同时看可打印部分。
2. Frida API
javascript
hexdump(ptr, { length: 64 }) // Frida 内置 hexdump
[].map(b => ('0' + b.toString(16)).slice(-2)).join('') // 手搓 hex 字符串3. 私钥/证书指纹
私钥/证书的 hash、DER 编码常以 hex 字符串形式出现。
识别特征
- 字符集仅
[0-9a-fA-F] - 长度是偶数(每两字符一字节)
- 常见前缀无(不像 Base64 有
=)
Python 解码
python
bytes.fromhex("48656c6c6f") # b'Hello'
"48656c6c6f".decode("hex") # Python 2