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

使用APDU UPDATE BINARY命令修改IMSI失败(响应98 04)求助

解决SIM卡IMSI修改返回98 04的问题

首先,98 04这个响应码的核心指向是权限验证不通过——不管是CHV(PIN码)未验证、验证失败,还是认证权限不足,本质都是SIM卡没授予你修改IMSI的操作权限。下面是一步步排查和解决的方案:

1. 先完成CHV1(PIN1)的验证

SIM卡中存储IMSI的EF_IMSI文件几乎都是受CHV1保护的,必须先通过PIN1验证获得操作权限,后续的修改命令才会被接受。

  • 执行VERIFY CHV命令验证PIN1,APDU格式为:
    00 20 00 01 <PIN长度> <PIN的十六进制值>
    
    比如你的PIN1是1234(4位),对应的APDU就是:
    00 20 00 01 04 31 32 33 34
    
    (注:PIN的十六进制是ASCII码转换,比如数字'1'对应31)
  • 验证成功会返回90 00,这时候再执行UPDATE BINARY命令才有可能通过。

2. 准确定位IMSI所在的EF文件并确认权限

不同SIM卡的文件路径可能略有差异,必须先定位到EF_IMSI并确认它的访问条件:

  1. 先选择MF(主文件):
    00 A4 00 00 02 3F 00
    
  2. 再选择DF GSM(GSM应用目录):
    00 A4 00 00 02 7F 20
    
  3. 最后选择EF_IMSI:
    00 A4 00 00 02 6F 07
    
    每一步都要返回90 00才算定位成功。
  4. 可以通过READ BINARY读取文件头,确认EF_IMSI的访问条件是CHV1验证通过,如果是需要ADM(管理员密码)权限,那普通用户一般无法获取这个密码,只能放弃或者使用可写的测试SIM卡。

3. 检查UPDATE BINARY命令的格式正确性

IMSI的修改命令必须严格符合APDU规范,尤其是数据格式和偏移量:

  • UPDATE BINARY的标准格式:
    00 D6 <P1> <P2> <Lc> <IMSI的BCD编码数据>
    
    • P1/P2是写入的起始偏移量,IMSI从文件开头写入的话填00 00
    • IMSI是15位数字,用BCD编码存储(占8字节,最后一位如果是奇数会补F)
      比如要修改的IMSI是460011234567890,转成BCD码是46 00 11 23 45 67 89 0F,对应的APDU就是:
    00 D6 00 00 08 46 00 11 23 45 67 89 0F
    
    注意:数据长度必须和Lc(这里是08)一致,否则命令会被拒绝。

4. 排除SIM卡锁死或硬件限制问题

  • 如果CHV1验证多次失败,会导致SIM卡锁死,此时需要PUK码解锁,不要继续尝试,否则会永久锁卡。
  • 部分运营商的正式SIM卡是硬件级禁止修改IMSI的,即使你完成了CHV1验证,也无法修改,这种情况下只能更换可写的测试SIM卡(比如白卡、专用测试卡)。

内容的提问来源于stack exchange,提问作者José Sarmiento

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 06:54:19