用途:面向 TrustZone/OP-TEE 类 TEE 的逆向分析,包括可信应用(TA)逆向、命令分发表还原、secure storage(安全存储/设备密钥)对象与数据流分析,以及 SMC 调用、主机侧 TEE 驱动 ioctl、client 库调用序列还原,用于评估目标设备 TEE 的接口暴露面、存储保护强度与信任根边界。不适用于普通 App 层、Windows 内核/驱动、纯固件提取解包、无 TEE 组件的普通加密数据、EL2 hypervisor 域,以及仅需判定是否使用 TEE 的场景。
主要能力:定位 TrustZone 的 normal/secure world 划分与 EL 层级,识别 SMC 指令调用点并按 SMCCC 约定(功能号 w0,参数 w1-w7 或 x1-x17,返回值从 w0 起)标注参数;解析 OP-TEE 的 core 与 TA 分离结构及 .ta 文件格式(签名头 magic 0x4f545348 即 "OTSH",img_type 0 明文签名/1 bootstrap/2 加密/3 子密钥链式,加密变体为 AES-GCM);还原 TA 入口链 TA_CreateEntryPoint、TA_OpenSessionEntryPoint、TA_InvokeCommandEntryPoint 及命令分发表;定位 TEE_* 存储 API 调用点,还原 secure storage 对象 ID 与数据流;通过主机侧 /dev/tee0 的 TEE_IOC_* ioctl 与 GlobalPlatform TEE Client API 调用序列(TEEC_InitializeContext、TEEC_OpenSession、TEEC_InvokeCommand、TEEC_CloseSession、TEEC_FinalizeContext)与 TA 侧分发表两头夹逼,闭合接口格式。
使用方式:静态分析免沙箱,主机侧动态按平台原则进沙箱,secure world 内动态通常不可行,默认静态加主机侧观察。工具包括 Ghidra/IDA(ARM64)、binwalk/unblob、python3、frida,以及 OP-TEE 官方仓库与 qemu 仿真环境作结构参照。流程为架构定位、OP-TEE 结构解析、TA 分析、主机侧调用面、厂商差异处理,每步产物记录证据路径与 sha256。
限制:secure world 常有反调试与完整性保护,动态调试通常不可行;TEE OS/TA 固件可能提取不到,需以主机侧调用面证据为主;自定义 TEE 的格式与约定可能与 OP-TEE 不同,需先做类型指纹再选模板;UUID 可能因版本演进变化,需按固件包内 TA 清单核对;secure storage 密文可能落于 RPMB 等硬件侧而非 REE 文件系统。具体安装命令与更多细节暂未提供。