M1卡介绍

对于电脑周边编程,主要有两种思路

一、利用windows系统本身dll库。

二、利用硬件产家提供的dll。

本篇对M1卡的编程是利用上述第二种方法。

M1卡最为重要的优点是可读可写并且安全性高的多功能卡。这些优点与其自身的结构密不可分。

M1结构:

M1卡分为16个扇区,每个扇区4块(块0~3),共64块,按块号编址为0~63。第0扇区的块0(即绝对地址0块)用于存放厂商代码,已经固化,不可更改。其他各扇区的块0、块1、块2为数据块,用于存贮数据;块3为控制块,存放密码A、存取控制、密码B。每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。

M1卡运作机理:

连接读写器→寻卡→识别卡(获取卡序列号)→从多卡中选一张卡→向卡中缓冲区装载密码→验证密码→进行读写→关闭连接

即(代码说明)

Open_USB→rf_request→rf_anticoll→rf_select→rf_load_key→rf_authentication→(/a_hex)→rf_read/rf_write→(hex_a)→Close_USB

如果概括来说的话,主要也就四部分
开关连接、寻卡、验证密码、读取。

(至于详细程序代码,相信大家自己看过dll说明文档后,自己会明白的,这里就不写了,因为内容多)

M1卡功能模式:

1.寻卡模式:

寻卡模式分三种情况:IDLE模式、ALL模式及指定卡模式(0,1,2
均是int类型,是方法参数,下同)。

0——表示IDLE模式,一次只对一张卡操作;

1——表示ALL模式,一次可对多张卡操作;

2——表示指定卡模式,只对序列号等于snr的卡操作(高级函数才有)【不常用】

也就是说,我们一次也可以同时操作多张卡。

对于多卡操作,其实际真正执行操作的还是一张卡。读写器能识别多张卡的序列号(但注意识别出的顺序是不定的,并且最多也就能识别4张卡,因为卡叠放的厚度太厚,会超出读写器的识别范围),并一一进行操作。

所以由此看出,多卡操作的意义并不大。但我建议大家还是设置为1好了(原因不说了,自己感受吧,其实无所谓)。

2.密码验证模式:

0——KEYSET0的KEYA

4——KEYSET0的KEYB

M1卡可以在验证密码时选择密码类型(A/B)。【其实M1卡有3套密码(KEYSET0、KEYSET1、KEYSET2),共6个密码(用0~2、4~6来表示这六个密码),目的是为了适应不同读写器。而这里我们用的是KEYSET0的2个密码】

M1卡密码机制:

这可以说是M1卡的精髓了,也是M1卡最为复杂的地方,希望大家耐心看完。

(请先看明白M1卡结构)如上所说,在存取控制中每个块都有相应的三个控制位,它们的定义如下:

块0:   C10   C20   C30

块1:   C11   C21   C31

块2:   C12   C22   C32

块3:   C13   C23   C33

一个扇区的三个数据块,我们可以利用密码机制对它们分别进行权限控制。数据块(块0、块1、块2)的存取控制如下:

例如:当块0的存取控制位C10 C20
C30=100时,验证密码A或密码B正确后可读;验证密码B正确后可写;不能进行加值、减值操作。

那么M1卡修改密码的方法是rf_changeb3

参数:

icdev:通讯设备标识符

_SecNr:扇区号(0~15)

KeyA:密码A

_B0:块0控制字,低3位(D2D1D0)对应C10、C20、C30

_B1:块1控制字,低3位(D2D1D0)对应C11、C21、C31

_B2:块2控制字,低3位(D2D1D0)对应C12、C22、C32

_B3:块3控制字,低3位(D2D1D0)对应C13、C23、C33

_Bk:保留参数,取值为0

_KeyB:密码B

由上我们看出_B0、_B1、_B2、_B3分别控制块0、块1、块2、块3。

由图我们可知_B0、_B1、_B2的可取值为
0、10、100、110、1、11、101、111。

这里大家一定要注意一点:

不能装载密码到M1卡某一扇区后再更改那扇区的密码(最好连接完读写器后直接更改密码),否则更改密码会失败而冻结扇区。如果不慎这样了,解决的办法是完成一次读写操作,再更改密码。

控制块(块3)的存取控制与数据块(块0、1、2)不同,它的存取控制如下:

_B3的取值与_B0相同。

一、主要指标

容量为8K位EEPROM

分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位

每个扇区有独立的一组密码及访问控制

每张卡有唯一序列号,为32位

具有防冲突机制,支持多卡操作

无电源,自带天线,内含加密控制逻辑和通讯逻辑电路

数据保存期为10年,可改写10万次,读无限次

工作温度:-20℃~50℃(温度为90%)

工作频率:13.56MHZ

通信速率:106KBPS

读写距离:10mm以内(与读写器有关)

二、存储结构

1、M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示:
























































































块0

数据块

0

扇区0 

块1

数据块

1

块2

数据块

2

块3

密码A   存取控制   密码B

控制块

3

 

块0

数据块

4

扇区1

块1

数据块

5

块2

数据块

6

块3

密码A   存取控制   密码B

控制块

7

      ∶

      ∶

 

0

数据块

60

扇区15 

1

数据块

61

2

数据块

62

3

密码A    存取控制   密码B

控制块

63

2、第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。

3、每个扇区的块0、块1、块2为数据块,可用于存贮数据。

数据块可作两种应用:

用作一般的数据保存,可以进行读、写操作。

用作数据值,可以进行初始化值、加值、减值、读值操作。

4、每个扇区的块3为控制块,包括了密码A、存取控制、密码B。具体结构如下:

密码A(6字节)  存取控制(4字节)
密码B(6字节)

5、每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:

进行减值操作必须验证KEY
A,进行加值操作必须验证KEY B,等等:

三、工作原理

卡片的电气部分只由一个天线和ASIC组成。

天线:卡片的天线是只有几组绕线的线圈,很适于封装到IS0卡片中。

ASIC:卡片的ASIC由一个高速(106KB波特率)的RF接口,一个控制单元和一个8K位EEPROM组成。

工作原理:读写器向M1卡发一组固定频率的电磁波,卡片内有一个LC串联谐振电路,其频率与讯写器发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,从而使电容内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内储存,当所积累的电荷达到2V时,此电容可做为电源为其它电路提供工作电压,将卡内数据发射出去或接取读写器的数据。

复位应答(Answer to
request)

M1射频卡的通讯协议和通讯波特率是定义好的,当有卡片进入读写器的操作范围时,读写器以特定的协议与它通讯,从而确定该卡是否为M1射频卡,即验证卡片的卡型。

防冲突机制 (Anticollision
Loop)

当有多张卡进入读写器操作范围时,防冲突机制会从其中选择一张进行操作,未选中的则处于空闲模式等待下一次选卡,该过程会返回被选卡的序列号。

选择卡片(Select
Tag)

选择被选中的卡的序列号,并同时返回卡的容量代码。

三次互相确认(3 Pass
Authentication)

选定要处理的卡片之后,读写器就确定要访问的扇区号,并对该扇区密码进行密码校验,在三次相互认证之后就可以通过加密流进行通讯。(在选择另一扇区时,则必须进行另一扇区密码校验。)

对数据块的操作


(Read):读一个块;


(Write):写一个块;

加(Increment):对数值块进行加值;

减(Decrement):对数值块进行减值;

存储(Restore):将块中的内容存到数据寄存器中;

传输(Transfer):将数据寄存器中的内容写入块中;

中止(Halt):将卡置于暂停工作状态;

M1卡介绍

时间: 2024-11-03 22:02:23

M1卡介绍的相关文章

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

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

某某水表-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

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快

比较IC卡、ID卡、M1卡、CPU卡它们之间有什么区别?

IC卡的定义 : IC(Integrated Circuit)卡是1970年由法国人Roland Moreno发明的,他第一次将可编程设置的IC芯片放于卡片中,使卡片具有更多功能.“IC卡”和“磁卡”都是从技术角度起的名字,不能将其和“信用卡”.“电话卡”等从应用角度命名的卡相混淆.自IC卡出现以后,国际上对它有多种叫法.英文名称有“Smart Card”.“IC Card”等:在亚洲特别是香港.台湾地区,多称为“聪明卡”.“智慧卡”.“智能卡”等:在我国,一般简称为“IC卡”. IC卡的分类:

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卡、ID卡、M1卡、射频卡的区别是什么

IC卡.ID卡.M1卡.射频卡都是我们常见的一种智能卡,但是很多的顾客还是不清楚IC卡.ID卡.M1卡.射频卡的区别是什么,下面我们一起来看看吧. 所谓的IC卡就是集成电路卡,是继磁卡之后出现的又一种新型信息工具.IC卡在有些国家和地区也称智能卡(smart card).智慧卡(intelligent card).微电路卡(microcircuit card)或微芯片卡等.它是将一个微电子 芯片嵌入符合ISO 7816标准的卡基中,做成卡片形式. 应用范围:目前IC卡已经十分广泛地应用于包括金融