6-SIM数据交互之-B0(READ BINARY)

news/2024/11/17 6:46:17/

B0-READ BINARY

B0即透明EF里面的内容binary(二进制),该指令一般在C0之后执行,在C0返回的fcp里面可以判断到该文件下是否存在binary及binary的长度,如果存在即可用B0需要读的字节长度。B0里面存的内容一般比较重要,如我们最常用的两个SIM卡信息,ICCID和IMSI就存在各自文件的B0里面。

B0指令比较固定,00 B0 00 00 XX(XX代表要读取的长度)

1.正常读取

当读B0时,解析fcp里面的内容可知B0长度为多少(88之前的两个字节),后面就用解析到的长度进行B0的读取即可,00 B0 00 00 XX(长度)

ICCID:2FE2

=>00 A4 00 04 02
<=A4
=>2F E2
<=61 19                 //返回长度0x19
=>00 C0 00 00 19        //读取0x19的fcp数据
<=C0 62178202412183022FE28A01058B032F06018002000A880110 9000
=>00 B0 00 00 0A
<=B0 9868200B326101550494 9000      //90 00正常结束

IMSI:6F07

=>00 A4 08 04 04
<=A4
=>7FFF6F07
<=61 19                 //返回长度0x19
=>00 C0 00 00 19        //读取0x19的fcp数据
<=C0 62178202412183026F078A01058B036F060380020009880138 9000
=>00 B0 00 00 09
<=B0 084906409160066622 9000      //90 00正常结束

2.读取少于原有数据

当读B0时,解析fcp里面的内容可知B0长度为0A,但是却只想读取少于0A的内容,如0x06,则就会返回0x06的长度,并以90 00结束

=>00 A4 00 04 02
<=A4
=>2F E2
<=61 19                 //返回长度0x19
=>00 C0 00 00 19        //读取0x19的fcp数据
<=C0 62178202412183022FE28A01058B032F06018002000A880110 9000
=>00 B0 00 00 06
<=B0 9868200B3261 9000      //90 00正常结束
=>00 A4 00 04 02
<=A4
=>2F E2
<=61 19                 //返回长度0x19
=>00 C0 00 00 19        //读取0x19的fcp数据
<=C0 62178202412183022FE28A01058B032F06018002000A880110 9000
=>00 B0 00 00 01
<=B0 98 9000      //90 00正常结束

3.读取多于/00原有数据

当读B0时,解析fcp里面的内容可知B0长度为0A,但是却想读取更多的内容,如0x0B,或者读取长度为00,则会返回该文件的剩余大小6C开始,需要以实际大小来读取

=>00 A4 00 04 02
<=A4
=>2F E2
<=61 19                 //返回长度0x19
=>00 C0 00 00 19        //读取0x19的fcp数据
<=C0 62178202412183022FE28A01058B032F06018002000A880110 9000
=>00 B0 00 00 0B
<=B0 6C 0A      //6C 0A

4.异常情况

1.使用命令B2去读B0的数据

=>00 A4 00 04 02
<=A4
=>2F E2
<=61 19                 //返回长度0x19
=>00 C0 00 00 19        //读取0x19的fcp数据
<=C0 62178202412183022FE28A01058B032F06018002000A880110 9000
=>00 B2 01 04 0B
<=B0 69 81  //命令与该文件结构不兼容

2.SIM PIN/PUK时,却想要读IMSI

=>00 A4 08 04 04
<=A4
=>7FFF6F07
<=61 19                 //返回长度0x19
=>00 C0 00 00 19        //读取0x19的fcp数据
<=C0 62178202412183026F078A01058B036F060380020009880138 9000
=>00 B0 00 00 09
<=B0 69 82:不满足安全条件:

5.其他重要的B0文件

如PLMN相关的:

PLMNsel_USIM 6F30
HPPLMN_USIM 6F31
PLMNwACT_USIM 6F60
OPLMNwACT_USIM 6F61
HPLMNwACT_USIM 6F62
FPPLMN_USIM 6F7B
EHPLMN_USIM 6FD9
EHPLMNPI_USIM 6FDB
LRPLMNSI_USIM 6FDC

LOCI相关的:

LOCI_USIM 6F7E
EPSLOCI_USIM 6FE3
LOCIPS_USIM 6F73

http://www.ppmy.cn/news/724820.html

相关文章

java中各种锁概念介绍,乐观锁 ,悲观锁 ,公平锁,非公平锁,可重入锁,读写锁,共享锁,自旋锁,偏向锁,轻量级锁,重量级锁等

乐观锁 乐观锁是一种乐观思想&#xff0c;即认为读多写少&#xff0c;遇到并发写的可能性低&#xff0c;每次去拿数据的时候都认为 别人不会修改&#xff0c;所以不会上锁&#xff0c;但是在更新的时候会判断一下在此期间别人有没有去更新这个数 据&#xff0c;采取在写时先读…

MySQL中的两种特殊插入方式

MySQL中的两种特殊插入方式 更新插入(on duplicate key update) 代码案例 PointMapper.java Mapper public interface PointMapper {/*** on duplicate key update ,是基于主键 或唯一索引 ,已存在数据则执行更新&#xff0c;不存在则执行插入*/int updateBatchByOdku(List…

【Leetcode】28. 找出字符串中第一个匹配项的下标

一、题目 1、题目描述 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 示例1: 输入:haystack = "sadbutsad", needle = "sa…

mysql binlog

简介 binlog用于记录数据库执行的写入性操作(不包括查询)信息&#xff0c;以二进制的形式保存在磁盘中。binlog是mysql的逻辑日志&#xff0c;并且由Server层进行记录&#xff0c;使用任何存储引擎的mysql数据库都会记录binlog日志。 binlog是通过追加的方式进行写入的&#…

日紫白飞星算法_年月日时紫白飞星法——紫白(入中)计算办法

年、月、日、时紫白飞星法 年飞星起例诀: 歌诀:年上吉星论甲子,逐年星逆中宫取, 上中下作三元汇,一上四中七下使。 又诀 上元甲子一白起, 中元四绿推甲子. 下元七赤兑位寻, 逐年星逆中宫是。 (逆数顺飞) 上元:(65-柱数)除9之余数.中元:(68-柱数)除9之余数.下元:(62-…

求四个数中最大值

/* * Copyright (c) 2011, 烟台大学计算机学院 * All rights reserved. * 作 者&#xff1a; 纪子龙 * 完成日期&#xff1a;2012 年10 月 11 日 * 版 本 号&#xff1a;v1.0 * * 输入描述&#xff1a; 两个正整数* 问题描述&#xff1a;给定四个正整数&#xff0c;求出四数…

四个数的排序问题

上机任务&#xff1a;完成四个数的排序问题 上机目的&#xff1a;练习用编程来解决实际问题 /* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * 作 者&#xff1a;王 飞 * 完成日期&#xff1a;2012 年10 月 15 日 * 版 本 号&#xff1a;v1.0 * 输…

比较四个数字的大小

/**上机内容&#xff1a;C程序的编程和运行*上机的目的&#xff1a;掌握C的基本程序和运行*文件名称&#xff1a;test.cpp*作 者&#xff1a;王雅萍*完成日期&#xff1a;2013年10月21日*输入描述&#xff1a;无*版 本 号&#xff1a;vl.0*问题描述&#xff1a;输入四个数字…