M1卡修改各区块控制位值和数据

(一),以常用设置"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 = C13C23C33 = C1YC2YC3Y = 0 1 1
2
1
0
字节7,字节6,字节8 = C12C22C32 = C1YC2YC3Y = 1 1 0
字节7,字节6,字节8 = C11C21C31 = C1YC2YC3Y = 1 1 0
字节7,字节6,字节8 = C10C20C30 = C1YC2YC3Y = 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"的访问条件及其改写步骤,对用户的其它控制条件亦可参照应用。

时间: 2024-11-04 21:21:33

M1卡修改各区块控制位值和数据的相关文章

记一次M1卡破解过程——weigr的第一次博文

一次偶然原因,在网上看到关于一些Mifare Classic card卡的破解文章,发现成本不是很高,并且门槛也不太高(本人笨得很,没觉得低)觉得很有意思,准备入坑一波.正好我寝室有饭卡.洗澡卡和直饮卡,为啥不试一试呢,嘿嘿.说干就干! 于是乎就在网上各种收集资料,(本人懒得很,不想去图书馆查资料)首先我们得搞懂M1卡的内部结构是吧,不然无从下手啊,所以我们先从结构说起吧. 可能文章有点长,着急的话可以直接跳过前面三个点 1.M1卡的存储内部结构: M1卡分为16个扇区,每个扇区对应4块(块0-

M1卡介绍

对于电脑周边编程,主要有两种思路 一.利用windows系统本身dll库. 二.利用硬件产家提供的dll. 本篇对M1卡的编程是利用上述第二种方法. M1卡最为重要的优点是可读可写并且安全性高的多功能卡.这些优点与其自身的结构密不可分. M1结构: M1卡分为16个扇区,每个扇区4块(块0-3),共64块,按块号编址为0-63.第0扇区的块0(即绝对地址0块)用于存放厂商代码,已经固化,不可更改.其他各扇区的块0.块1.块2为数据块,用于存贮数据:块3为控制块,存放密码A.存取控制.密码B.每个

RFID之linux下利用PN532对M1卡(饭卡,

2014-12-20 这篇文章主要是讲 linux下的对IC卡(M1卡)的无线hack技术. 设备:硬件方面,PC机一台,PN532开发板一套. 软件方面:mfoc,mfcuk. 本文用不到mfcuk的,我还是给大家科普下吧.原理这些我不讲啦,讲应用吧.mfoc,知道卡的一个密码,以超短时间破解其他所有密码.mfcuk,通过随机数,暴力破解密码(别认为是随机数充当密码),一般30分钟内能破解,不能破解的话说明你运气不够,换个时间 忍不住还是说说M1卡吧.M1卡,一般国内喜欢用1K卡,1K卡里面有

射频识别技术漫谈(15)——Mifare1的安全性及7字节序列号M1卡

Mifare1的安全性主要指卡中数据的安全性,要求卡中的数据不能被非法修改或窃听.数据的安全性主要使用加密技术来保证,加密技术有两个关键因素:加密算法和密钥.现代加密技术的一大特点是加密算法公开,如果加密密钥和解密密钥相同,则称为对称加密,密钥不能公开:如果加密和解密密钥不同,则可以公开其中一个密钥(公钥),另一个不公开(私钥).加密破解的实质就是如何获得不公开的密钥. Mifare1中使用了一种称为"crypto1"的加密算法.遗憾的是,这是一种不公开的私有算法.就本人目前所知,这种

IC卡,ID卡,M1卡,射频卡

一般把可读可写,频率是13.56MHz的射频卡称为IC卡,IC卡可以写入数据, 只能读,频率是125KHz的射频卡称为ID卡, M1卡是NXP公司的S50卡的一种叫法,国内的复旦F08,达华的TKS50等兼容飞利浦S50的卡片都有可以称为M1卡,而这些卡都是射频卡,就是通过射频感应原理工作的卡. 注释: 1.市面上的UID卡比普通的IC卡(M1卡)贵很多,那是因为UID卡的所有技术参数都和M1卡一样,唯一的区别就是UID卡的0扇区0块不是固化的,可以更改,达到复制的目的.(普通M1卡的0扇区0快

M1卡说明及使用proxmark3破解方法

原文: http://www.cnblogs.com/h2zZhou/p/5250710.html 看了网上写的一些关于M1卡的文章,多数有些误导之嫌.首先谈谈M1卡的规格,M1卡的容量为1KB,好多网上写8KB,这里其实是有个误区,应该是8K位.1Byte=1B=8位.其实也就是说8k位想到于1KB的容量,也就是说一个4GB的U盘的存储空间约等于四百万张m1卡的空间.        虽然空间比较小,但是里面其实学问很大,我们来看一下M1卡的内部结构.M1卡分为16个数据存储区,通常我们称为“扇

M1 卡技术规范

射频卡简单来讲就是卡的一种工作方式,通过感应的方式来工作,也能够把全部的感应卡都统称为射频卡. IC卡的范围比較广.芯片外露的接触式IC卡.芯片内置的感应式IC卡和双界面IC卡都可统称为IC卡.IC卡芯片有分为可加密的逻辑加密卡及仅仅具有存储空间的存储卡. ID卡全称为身份识别卡,是一种不可写入的感应卡,ID卡出厂的时候芯片内码号就已经固话不可更改,每次使用不过读取ID卡的卡号和相关信息进行关联. ID卡与磁卡一样,都只使用了"卡的号码"而已.卡内除了卡号外,无不论什么保密功能,其&q

IC卡、M1卡、CPU卡、SAM卡、PSAM卡的联系与区别

一. 技术方面(非接触式IC卡)  1. 逻辑加密卡又叫存储卡,卡内的集成电路具有加密逻辑和EEPROM(电可擦除可编程只读存储器).  2. CPU卡又叫智能卡,卡内的集成电路包括中央处理器(CPU).EEPROM.随机存储器(ROM).以及固化在只读存储器(ROM)中的片内操作系统(COS),有的卡内芯片还集成了加密运算协处理器以提高安全性和工作速度,使其技术指标远远高于逻辑加密卡. 3. CPU卡由于具有微处理功能,使得在交易速度以及数据干扰方面远远高于逻辑加密卡,且允许多张卡片同时操作,

某某水表-M1卡数据算法分析

# 某某水表-M1卡数据算法分析 ## 卡片数据-----------------------------扇区数据 | 金额:--- |:---13EC 0000 0000 0000 0000 0000 03EB BD1B | 51.0013E7 0000 0000 0000 0000 0000 03F0 AD2B | 50.9513E2 0000 0000 0000 0000 0000 03F5 AD2B | 50.8513DD 0000 0000 0000 0000 0000 03FA 9D