您的位置:首页 > 其它

有关CDMA2000 写号IMSI_M计算

2018-02-12 22:38 183 查看
 有关CDMA2000写号时IMSI_M计算,如果你选择和我一样看协议的话,本文下面你可以不用看了,直接看协议第六章IS95B
测试方提供一个IMSI号刷到UIM卡里面,这就需要把数字格式的IMSI转换成CDMA2000文件系统6F22(EF_IMSI_M)中要求的格式。
6F22格式:
    
    00 AA AA BB BB BB CC 80 DD DD

    00代表CLASS=0
    AA AA根据MIN前3位计算
    
    BB BB BB根据MIN后7位计算
    
    CC根据MNC计算
    
    80代表IMSI_M_PROGRAMMED=1、IMSI_M_ADD_NUM=0
    
    DD DD根据MCC计算
    
    
计算AA AA:
     选中MIN前3位,分成三个个位数,分别是D1、D2、D3
     计算NUM = D1 * 100 + D2 * 10 + D3 - 111(如果D1、D2、D3中出现0,则当作10计算)
     NUM转换为2字节小端格式16进制,位数不足前面补0。
 计算BB BB BB:
     以MIN第4-6位为数据,按照AA AA 计算方法算出NUM,将NUM转换为10bit的2进制,不足补0
     将MIN第7位单独取出来,按照标准10进制的计算方法,计算出4bit的2进制,不足补0
     以MIN第8-10位为数据,按照AA AA计算方法算出NUM,转为10bit的2进制
     将上述3步的得出来的2进制数拼起来,转换成3进制的小端格式1进制
计算CC:
    把MNC分割成2个个数,分别是D1、D2
    NUM = D1 * 10 + D2 - 11(如果D1、D2中出现0,则当10计算)
    将NUM转换为1字节16进制
计算DD DD:
    以MCC为数据,按照AA AA计算方法,得出2字节小端格式16进制

例子:
    Imsi:46003 096 645 2 459
    MSI_M_S2根据MIN中的096进行按照协议规则计算值为985对应的IMSI_M_S2:D9 03

    IMSI_M_S1根据MIN中的后7为进行根据协议规则计算分别为:

    645计算结果为:534  对应二进制值为:1000010110
    2计算结果为:  2  对应二进制值为:0010
    459计算结果为:348  对应二进制值为:0101011100

    上面这3个值合并后二进制为100001011000100101011100 = 0x 85 89 5C,3字节小端格式0x5C8985
    MNC为03,NUM = 92,1字节16进制为5C
    MCC为460,NUM = 359,2字节16进制小端格式 67 01
    因此 6F22 文件内容为
    
         00 D9 03 5C 89 85 80 67 01
    当然由IMSI_M也可以推出IMSI,计算AA AA时可以明确网络制式,利用十六进制的位数相同或者余数很容易算出来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CDMA IS95B