(3条消息) M1卡修改各区块控制位值和数据

原文地址::https://blog.csdn.net/sxdtzhp/article/details/80297455

相关文章
1、keyA的修改----https://wenku.baidu.com/view/7f82bc9219e8b8f67c1cb978.html

2、MifareClassic卡通过Access Bits来控制keyA和keyB的读写权限----https://blog.csdn.net/viviwen123/article/details/8712992

3、RFID的KeyA/KeyB和区读写控制位----https://blog.csdn.net/android_xiaozhou/article/details/26727829

4、MifareClassic卡自定义keyA和keyB----https://blog.csdn.net/viviwen123/article/details/8665972

5、关于S50卡密钥A和密钥B----https://blog.csdn.net/robinson_911/article/details/12783897

6、NFC (二)读写MifareClassic协议的NFC卡----http://www.cnblogs.com/haoxinyue/archive/2012/05/03/2479599.html

7、http://www.orangetags.com/rfid-chip-datasheet/nxp-rfid-chip-datasheet/mifare/nxp-mifare-1k-datasheet/

8、MIFARE Classic S50技术详解----https://blog.csdn.net/supergame111/article/details/51633805/

(一),以常用设置"08 77 8F 69"控制条件为例,先搞清楚它――具有的访问权限。

1、对"08 77 8F 69"值进行计算,该值定位于各区块3的6,7,8,9四个字节内,字节6=08,字节7=77, 字节8=8F,   字节9=69(默认值,不予计算)。

2、例如:字节6=08,对应其二进制值=00001000, 则对6,7,8这三个字节进行二进制转换结果见下表:

字节6 = 0 0 0 0 1 0 0 0 字节7 = 0 1 1 1 0 1 1 1 字节8 = 1 0 0 0 1 1 1 1

3、参照表2及表4算法,字节6的全部二进制值取反,字节7的低四位二进制值取反,字节8不变,得到:

字节号 对应二进制值 位置 高4位 位置 低4位
字节6 
字节7 
字节8
0 0 0 0 1 0 0 0
0 1 1 1 0 1 1 1
1 0 0 0 1 1 1 1
C2Y
C1Y
C3Y
1 1 1 1
0 1 1 1
1 0 0 0
C1Y
C3Y
C2Y
0 1 1 1
1 0 0 0
1 1 1 1
所 属 块 位 块3 块2 块1 块0   块3 块2 块1 块0

4、对以上6,7,8字节的存取/控制二进制已取反值,依照表2,表4块位转换为各块控制值,如下表:

块3位 字节7,字节6,字节8 = C13,C23,C33 = C1Y,C2Y,C3Y = 0 1 1
块2位
块1位
块0位
字节7,字节6,字节8 = C12,C22,C32 = C1Y,C2Y,C3Y = 1 1 0
字节7,字节6,字节8 = C11,C21,C31 = C1Y,C2Y,C3Y = 1 1 0
字节7,字节6,字节8 = C10,C20,C30 = C1Y,C2Y,C3Y = 1 1 0

注意: 高4位的各块值=低4位的各块值时,其值可用。高4位值≠低4位值时,其值不可用!

5、查对访问权限(数据存取控制依照表3,块3存取控制依照表5),该例"08 77 8F 69"的访问权限为:

◆ 块3 = 011:权限为:KeyA,KeyB均不可读,验证KeyB正确后可改写KeyA和KeyB,验证KeyA或KeyB正确后可读"控制位"。在此可见密钥KeyB的重要性,KeyB不正确是无法看到块3控制值,更无法修改密钥。

◆ 块2 = 块1 = 块0 = 110:权限为:验证KeyA或KeyB后可读该块数据,减值以及初始化值,只有验证KeyB 正确后才可改写该块数据,在此可以看到密钥KeyB对改写数据块也起着关键性作用。

(二)、"08 77 8F 69" 控制条件设置步骤:

由(一)可知:KeyB设置后为不可读,并且改写数据和改写控制位都需要正确验证它,故KeyB设置后程序

操作员必须妥善保管KeyB值,否则以后改写数据和控制位时,不正确的KeyB值将无法实现卡的任何操作!!!

1、修改块3控制位的值:最初的各区块3内的KeyA,KeyB都是厂商12个"F"默认值(KeyA在任何条件下均为不可读,大部分读写机程序表现KeyA为未知的12个"0" ),在修改控制值时,先不要修改默认密码KeyA和KeyB,在控制位修改成功后,再去更改新密码值。即先对块3的控制位进行修改(默认值FF 07 80 69改为新值08 77 8F 69)并执行写操作。控制位写成功后,KeyB亦为12个"0"不可读了,但仍是隐藏的12个"f"默认值。

2、修改块3的KeyA和KeyB值:控制位08 77 8F 69值写成功后,验证KeyB正确后方可改写KeyA和KeyB新密码。在密码操作模式键入要改写区块之先前密码B(先前密码为默认值时,则不需改动和加载),加载后反回数据操作模式,再进行读值,KeyA和KeyB值的改写。

3、修改块0~块2中数据:由新的控制条件08778F69可知,要修改数据,必须先验证KeyB,故先设置密码操作为KeyB认证方式,加载后再返回数据操作模式,对要修改的数据块进行值的改写操作。

4、上例中分析了"08 77 8F 69"的访问条件及其改写步骤,对用户的其它控制条件亦可参照应用。

转自:M1卡修改各区块控制位值和数据 | 堕落的鱼

--------------------- 本文来自 sxdtzhp 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/sxdtzhp/article/details/80297455?utm_source=copy

(0)

相关推荐

  • 老曹眼中的MySQL调优

    对于全栈而言,数据库技能不可或缺,关系型数据库或者nosql,内存型数据库或者偏磁盘存储的数据库,对象存储的数据库或者图数据库--林林总总,但是第一必备技能还应该是MySQL.从LAMP的兴起,到Ma ...

  • 深入浅出FlatBuffers原理

    一  前言 FlatBuffers 是一个开源的.跨平台的.高效的.提供了多种语言接口的序列化工具库.实现了与 Protocal Buffers 类似的序列化格式.主要由 Wouter van Oor ...

  • angularjs下拉列表设置一个默认值

    angularjs环境中,下拉列表html代码如下: 下拉列表的数据源结构大约如下: 现在,我们想在页面的初始化或者一个用户Click事件中,为这个下拉列表设置一个默认值. 方法如下: $scope. ...

  • MIFARE Classic S50技术详解

    Mifare Classic 简介 MIFARE Classic是恩智浦半导体开发的可用于非接触式智能卡,符合ISO/IEC 14443 A类标准.用于公共交通票证等应用,还可用于各类其他应用有S20 ...

  • 到底什么是哈希Hash?

    有次面试被问到这个问题? 我说是经过运算的一串字符串,这个回答显然是让人不满意,连自己都不满意! 但是又对其很模糊,那么到底什么是Hash呢? 定义 Hash一般翻译为散列,还有音译为哈希,本文我们统 ...

  • (3条消息) M1卡区块控制位详解

    M1卡区块控制位详解 Mifare 1S50/Mifare 1S70 每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取 控制.存取控制为4个字节,共32位,扇区中的每个块(包括 ...

  • (3条消息) M1卡操作

    原文传送门:https://www.cnblogs.com/ivantang/p/3904025.html M1卡介绍 本文整理自网络. M1卡是指菲利浦下属子公司恩智浦出品的芯片缩写,全称为NXP ...

  • (7条消息) Matplotlib中修改坐标轴刻度线的属性

    在matplotlib中,刻度线叫tick,刻度值叫tick_label 注意这幅图片中就包含了关于刻度线的一些信息.比方,不仅有主刻度线(Major tick),还有次刻度线(Minor tick) ...

  • (10条消息) 用C语言实现PID控制代码

    PID控制算法的C语言实现一 PID算法原理 最近两天在考虑一般控制算法的C语言实现问题,发现网络上尚没有一套完整的比较体系的讲解.于是总结了几天,整理一套思路分享给大家. 在工业应用中PID及其衍生 ...

  • (4条消息) python3爬虫系列07之动态网页Json 数据,爬虫要怎么搞?

    python3爬虫系列07之动态 Json 数据,要怎么搞? 1.前言 经过 python爬虫实战系列 中的 python3爬虫系列06之整体架构式:根据关键词爬取百度图片 相关学习,现在我们已经会一 ...

  • (1条消息) python3爬虫系列07之动态网页Json 数据,爬虫要怎么搞?

    (1条消息) python3爬虫系列07之动态网页Json 数据,爬虫要怎么搞?

  • (3条消息) 手机NFC模拟M1门禁卡、写CUID白卡的一些研究记录

    一.需求场景 近来小区安装了智能门禁,但只配发了一张门禁卡,不方便使用,于是产生了用手机模拟门禁卡,或者复制一张门禁卡的想法. 本文使用的软件:(CSDN无法修改下载积分了...) 包括手机NFC读写 ...

  • (2条消息) 利用pypcap、dpkt和pylibnet轻松实现网络捉包、网络包分析和网络包修改

    最近利用python做一个网络捉包.包分析.包重写修改的程序.因为要修改捉到的TCP包.涉及修改链路层的包(以太网),用到了pylibnet库. 一.pypcap捉包并用dpkt组成对象. pc = ...

  • (32条消息) 小米NFC手机复制加密IC门禁卡

    几年没有发过任何文字信息了.闲来无事发一个NFC手机复制加密门禁卡的教程 思路: 第一步通过破解加密的门禁卡得到dump文件,获取卡号.修改dump文件只保留0扇区0块的内容也就是卡号,通过读卡器写入 ...