You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SIM卡ADM认证实现IMSI修改的APDU构造及操作问题咨询

ADM权限认证及IMSI更新解决方案

核心思路梳理

  • ADM权限认证本质上是验证卡内预置的管理类密钥,99%的消费级SIM/USIM卡使用标准VERIFY指令(INS=0x20)完成,而非AUTHENTICATE指令。AUTHENTICATE通常用于GSM/3G鉴权、安全通道建立等场景,不用于普通ADM权限校验
  • 网上找到的通用APDU无效,大概率是密钥引用参数(P2)或者ADM码编码格式和你使用的卡不匹配

标准ADM认证APDU构造规则

完整指令结构如下:

字段取值说明
CLA固定为0x00(标准GSM/USIM卡)或0xA0(老版本SIM卡)
INS固定为0x20(VERIFY指令)
P1固定为0x00
P2ADM密钥对应的引用ID,常见取值为0x0A`0x0F`对应ADM1ADM6级别,具体值需要从你卡的文件访问控制条件中读取
LcADM码的字节长度,8位ADM码对应0x08
DataADM码的编码值,90%以上运营商采用ASCII编码,如8位ADM码12345678对应的十六进制为0x3132333435363738,部分特殊卡采用BCD编码,对应值为0x12345678
Le不需要返回数据时可省略

示例:你的ADM码为12345678,卡的ADM1对应P2为0x0A,则完整APDU为:
00 20 00 0A 08 31 32 33 34 35 36 37 38
认证成功时卡返回状态码9000,即可正常更新IMSI文件


必要前置排查步骤

  • 先确认ADM密钥对应的P2值:选中IMSI所在的DF目录,读取文件的FCP参数,访问控制字段中会标记更新IMSI所需的密钥ID,该ID就是你需要填到P2的取值
  • 避免锁卡:在输入ADM码前,先发送不带数据的VERIFY指令查询剩余重试次数,指令格式为00 20 00 [P2值] 00,返回63 CX时X即为剩余重试次数,次数为0时卡会永久锁死
  • 确认路径:ADM密钥通常存储在MF根目录下,认证前请先选择MF(指令00 A4 00 00 02 3F00),不要在子DF下发送ADM认证指令

特殊情况处理

如果是支持安全通道的eUICC/运营商定制卡,确实需要用AUTHENTICATE指令(INS=0x88)完成ADM认证,此时需要构造TLV格式的请求数据:

  • Tag 0x81:1字节,值为ADM密钥的ID
  • Tag 0x80:N字节,值为ADM码的编码值
    示例指令格式:00 88 00 00 0A 81 01 0A 80 08 3132333435363738

内容的提问来源于stack exchange,提问作者Nesca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:45:04