UICC Send USSD 加密信息解析
已以下指令为例
已知发送 USSD 的格式为:
Send USSD aaaxxxxxxxxxxxx*yyyyyyy#
;Fetch:==:SEND USSD SEND 801200001F ASSERT D01D81030112008202818305008A100F2A5C0DA782C564335ACDA6CAE57223 9000 ;命令类型: Send USSD ;设备标识: SIM==>Network ;α标识符=() ;DCS=(0F) ;USSD String=(2A5C0DA782C564335ACDA6CAE57223) ; =(2A3835382A303132333435362A39393923)
首先对ASSERT指令进行拆解:
ASSERT D01D81030112008202818305008A100F2A5C0DA782C564335ACDA6CAE57223 Proactive command 命令类型 12 : SEND USSD ============================ 命令细节 ---------------------------- 命令细节标记 81 长度="03" 03 命令代码 01 命令类型 12 命令限定符 00 RFU ============================ 设备标识 ---------------------------- 设备标识标记 82 长度="02" 02 起始端设备标识 81:UICC; 目的端设备标识 83:Network; ============================ α标识符 ---------------------------- α标识符标记 05 长度 00 α标识符 ============================ USSD字符串 ---------------------------- USSD字符串标记 8A 长度 10 TON和NPI 0F USSD字符串 2A5C0DA782C564335ACDA6CAE57223
然后对USSD 字符串使用7bit解码方式进行解析,即可得到发送的原始数据:
USSD字符串 2A5C0DA782C564335ACDA6CAE57223 解析后的字符串 *858*0123456*999#
注:
GSM默认采用7bit编码,实际上,7位编码是种压缩算法,因为,ASCII码(不包括扩展ASCII),其值小于0x80,最高位bit8是0,被忽略了;而7bit编码就利用了这一位来存储数据;其编码时,依次将下一7位编码的后几位逐次移至前面,形成新的8位编码。
分类:
UICC
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)