当前位置: 首页>編程日記>正文

apdu 移动sim_SIM之APDU指令格式 | 学步园

apdu 移动sim_SIM之APDU指令格式 | 学步园

sim与ME之间通过APDU进行交互。

APDU包括命令APDU跟相应APDU,其中命令APDU格式为CLA+INS+P1+P2+P3+DATA,响应APDU格式为Data+SW1+SW2,当由ME从SIM读取数据时则STPlayer使用READ,往上写数据则使用WRITE模式。每个命令格式及APDU的格式我已经都写过一遍了,这里就不多做介绍 ,主要介绍为什么这么写跟返回值如何判断。

MF或DF下的相应参数/数据:1-2:RFU,3-4:MF/DF下的剩余未分配空间,5-6文件识别,7:文件类型,8-12:RFU,13:可选字段的长度,14-34:GSM特定数据

GSM特定数据  14:文件类型,15:当前目录下的直接的DF数目,16:当前目录下的直接的EF数目,17:(CHV+PUK+ADM)目,                     18:              RFU,19:CHV1状态(位1为几个VERIFY CHV1尝试正保留着),20:Unblock CHV1状态(位1为几个UNBLOCK CHV1尝试正保留着),21:CHV2状态,22:Unblock

CHV2状态,23:FRU,24-34:管理字段,往后为RFU

EF情况下的响应数据/参数:1-2:RFU,3-4:文件大小,5-6:文件识别,7:文件类型,8:RFU,9-11:GSM存取权限,12:文件状态,13:可选字段的长度,14:文件类型,15:记录长度,16以后是RFU

EF文件分类:00:transparent EF(文件头+字节序列),01:Linear fixed EF(文件头+一竖下来的记录) 03:cyclic EF(文件头+一竖下来的记录,最后一条记录有一指针链接,对于更新操作只能用PREVIOUS方式)

文件类型:00:RFU 01:MF,02 :DF,04:EF

状态字:正确执行  90 00:命令正常结束  9F XX:长度为XX的相应数据

参考管理  94 00 :没有EF被选择   94 02:超出范围  94 04:文件ID没有发现,或者特征字串没有发现 94 08:文件与命令不一致

安全管理  98 02 :CHV没有初始化  98 04:不满足存取条件或CHV校验不成功,至少还有一次剩余尝试或UNBLOCK CHV校验不成功,至少还有一次剩余尝试或鉴权失败(连续三次CHV或十次UNBLOCK)   98 08:与CHV状态矛盾  98 10:与文件无效的状态矛盾  98 40:CHV校验不成功,无剩余尝试或UNBLOCK CHV校验不成功,无剩余尝试或CHV 锁或UNBLOCK CHV 锁住 98 50:不能执行增加,已达到最大值

应用出错 67 XX:错误的参数P3(一般XX为00),6B XX:不正确的参数P1或P2,6D XX :命令中提供不正确的指令代码,6E XX :命令中提供错误的指令类别,6F XX,没有给出诊断的技术问题。

SELECT:只能选择当前,儿子,父亲,亲兄弟四种文件,在STPlayer中选择EF后,接下来的操作失败,则会返回到上一级,须重新选择EF。

STATUS与GET RESPONSE:区别在于STATUS命令不适用与EF,其中P3所需要的len为select响应的参数SW2

READ_BINARY与UPDATE_BINARY:针对transparent EF,offset high和offset low指明偏移的高位跟低位,其中READ的len为GET RESPONSE中的最后一位,即该字节序列的长度,而UPDATE的len为要更新字节序列的长度,即后面跟数据的长度。

READ_RECORD与UPDATE_RECORD:针对Linear fixed EF跟cyclic EF,其中为cyclic EF时,UPDATE只能使用PREVIOUS方式,这里说明模式,02:NEXT RECORD,03:PREVIOUS RECORD,04:ABSOLUTE MODE/CURRENT MODE,其中len为STATUS或GET RESPONSE响应数据的最后一位,而记录号的范围对于Linear fixed EF来说为1到最大记录(响应数据的3、4位(文件大小)除以该len),而对于cyclic要注意的一点是,虽然最后一条的下一条为第一条,当是当你指定到最后一条+1的记录号,然后用当前模式,则会发生

94 02 的错。

SEEK:针对Linear fixed EF跟cyclic EF,包含四种模式,X0(从头往下),X1(从尾往上),X2(从下一个往下),X3(从上一个往上),其中X为1时返回记录号。如操作不成功,则记录指针未改变。其中查询的长度为1到记录长度。

INCREASE:针对cyclic EF,每条记录都加上该命令的数据,里面指定3个字节,我把全部cysclic EF都找了一遍,发现就EFACM跟EFLND两个文件,既然它指定3个字节,我想应该就是针对EFACM设定的了。

VERIFY_CHV/CHANGE_CHV/DISABLE_CHV/ENABLE_CHV/UNBLOCK_CHV:三次校验失败CHV阻塞,十次UNBLOCK失败死锁。

INVALIDATE/REHABILITATE:这个命令前有个要求:仿真器取得安全取款条件,当我根据1117里的步骤写时,它前面选择的是EFLOCI,然而在这个文件下怎么试都不行,后来我把文件换为EFADN就可行了,我想应该是EFLOCI未有安全取款条件,而EFADN有。这个命令还得注意一点是,在执行该命令是,要校验的是CHV2。当执行成功后,GET_RESPONSE的响应数据的字节12位1为0,即为无效文件,此时只有SELECT跟REHABILITATE这两条命令可执行。其中REHABILITATE即为恢复为有效的命令。

RUN_ALGORITHM:此函数需在DFGSM下,后面跟一16字节的随意数据,通过GET RESPONSE返回密钥。


https://www.fengoutiyan.com/post/15002.html

相关文章:

  • 指令格式特点
  • 7816协议
  • 一种单地址指令格式如下所示
  • apdu指令错误
  • cos指令
  • lte切换信令流程
  • apdu指令执行失败
  • 某机的指令格式如下所示
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機