有关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时可以明确网络制式,利用十六进制的位数相同或者余数很容易算出来
测试方提供一个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时可以明确网络制式,利用十六进制的位数相同或者余数很容易算出来
相关文章推荐
- 二维几何模板 - 圆和球有关计算模板
- 有关云计算今天的注意点
- AS3有关颜色计算
- 算法系列之九:计算几何与图形学有关的几种常用算法(一)
- 偶尔看到有关float/double计算精度的问题,做个backup
- 计算几何与图形学有关的常用算法
- 有关不同浏览器不同版本号的css以及js计算高度的问题
- 有关不同浏览器不同版本的css以及js计算高度的问题
- 有关云计算和我为什么反对云计算
- 有关Windows平台下CPU使用率的计算
- 算法系列之九:计算几何与图形学有关的几种常用算法(二)
- C#-和时间有关的计算代码、时间相减 得到天数、小时、分钟、秒差
- 第八周-有关球,圆柱,圆锥的计算
- 一个有关计算结构体数组大小的问题
- 算法系列之九:计算几何与图形学有关的几种常用算法(二)
- 【并行计算-CUDA开发】有关CUDA当中global memory如何实现合并访问跟内存对齐相关的问题
- 有关SQL中的计算问题
- IP地址分类与子网掩码有关计算
- 有关opencv的学习(9)—计算图像直方图
- 计算几何与图形学有关的几种常用算法