如何从支持IsoDep的学生卡提取学号,实现手机模拟?
提取学生卡学号的操作建议
你发送的00 A4 00 00 00空SELECT命令返回9000,说明卡片已接受该命令并选中默认应用/主文件系统(MF)。接下来可以按以下步骤尝试读取数据:
1. 读取主文件系统目录
先获取MF下的文件列表,确定可能存储学号的文件:
00 B0 00 00 0F
这个命令会读取MF的前15字节目录数据,返回的内容包含文件ID、类型、大小等信息。重点关注长度与学号位数匹配的文件(比如学号是8-12位,对应4-6字节二进制数据)。
2. 读取目标文件数据
假设从目录中找到目标文件ID为0001,发送读取命令:
00 B0 00 01 10
00 01是文件ID(P1P2参数)10是读取长度(可根据实际调整,比如学号是8位就设为08)
如果返回9000,解析返回的字节数据,转成字符串就是你的学号。
3. NDEF格式卡片的特殊尝试
因为卡片支持NdefFormatable,也可能是NDEF类型卡片,先尝试选中NDEF应用:
00 A4 04 00 07 D2 76 00 00 85 01 01
若返回9000,接着读取NDEF容量:
00 B0 00 00 02
再用读取到的容量值替换下面的XX,读取NDEF数据:
00 B0 00 02 XX
解析NDEF数据即可提取学号。
常见错误应对
6A82(文件未找到):核对文件ID,重新读取目录找正确的目标文件6981(命令不允许):卡片有访问控制,需先发送密钥验证命令(比如MIFARE卡的00 A0 00 0X [密钥字节],X为扇区号)6700(长度错误):调整命令末尾的长度参数
内容的提问来源于stack exchange,提问作者Eitanbl
相关产品推荐
相关产品推荐

